Pular para o conteúdo

Fechar interface sem clicar no botão

Responder tópico
  • Denunciar
  • Indicar

1. Fechar interface sem clicar no botão

Enviado em 11/05/2012 - 21:08h

Venho estudando python a uns 2 meses e agora para por em pratica estou desenvolvendo um projetinho(treino).
Bem estou usando PyQt para criar interface gráfica, eu criei a interface onde pede usuário e senha.
O código verifica no banco Mysql, e caso esteja cadastrado ele prossegue, então vem a questão, preciso fechar a interface do login quando confere usuário e senha e abrir outra simultaneamente.
E manter a autenticação do usuário, ou seja, variável de sessão talvez, sei como fazer no PHP mais no Python ainda não consegui assimilar.

Grato pela atenção novamente.

Antonio Olimpio

Responder tópico

2. Re: Fechar interface sem clicar no botão

Enviado em 11/05/2012 - 23:10h

Criei uma agenda, não se trata de Qt4, utilizei wxPython, mas a idéia pode ser aproveitada.
Quando o usuário inicia o programa, surge uma pequea janela (frame) de login com nome e senha por sobre a janela principal. Essa janela de login é modal, ou seja, ela impede qualquer ação do usuário na janela principal.
Quando existe falha de login uma "messagebox" aparece acusando erro de usuário ou senha. Quando a tentativa de login é bem sucedida, basta alterar a permissão de modal para janela.ShowModal("False") e fazer a janela de login desaparecer janela.Show(False). Assim o usuário pode interagir com o programa. Caso deseje fechar a janela de login sem logar, o evento Close() é capturado por uma função que encerra todo o aplicativo.
Espero que seja útil.

4. Obrigado, esclareceu

Enviado em 12/05/2012 - 14:32h

Obrigado stack_of, sua ajuda foi muito esclarecedora, agora tenho um ponto de partida, estou fazendo uns teste aqui com a dica que você deu.

Muito obrigado.

stack_of escreveu:

Uma imagem vale mais que mil palavras. Dá uma olhada. Ainda é um projeto em construção:

http://imageshack.us/photo/my-images/401/agendat.png/




Responder tópico

Responder tópico

Entre na sua conta para responder.

Fazer login para responder