associação pythonbrasil[11] django zope/plone planet Início Logado como (Entrar)

Você não tem permissão para executar esta ação.

Excluir mensagem

PyGtkMensagens

Receita: Mensagens Padrões no PyGtk

Em nossos aplicativos precisamos de mensagens para alertar o usuário, seja ela crítica ou não. Essa receita ensina como criar mensagem padrão para seu aplicativo.

Código

   1 #-*- encoding: utf8 -*-
   2 
   3 ##
   4 # Esse programa é livre, você pode distribuir e/ou modifica-lo sob os
   5 # termos da licença geral publica GNU publicada pela fundação de software
   6 # livre (Free Software Foundation),  contida na segunda versão da licença
   7 # ou (em sua opinião) outra versão mais recente.
   8 # Esse programa é distribuído na esperança de ser útil e satisfatório,
   9 # mas DESTITUÍDO DE QUALQUER GARANTIA, destituído igualmente da
  10 # COMPATIBILIDADE DE MÁQUINA ou CONVENIÊNCIA PARA PROPÓSITOS
  11 # PARTICULARES. Veja a licença geral publica GNU para opter mais detalhes.
  12 # http://www.gnu.org/copyleft/gpl.html
  13 ##
  14 
  15 ###############################################################################
  16 ## Nome do Arquivo: utilitario
  17 ## Autor: Guedes, Maurilio<billguedes>
  18 ## Data da Criação: 26/11/2004
  19 ## Data da Modificação: 03/07/2005
  20 ## Finalidade: Funções úteis do dia-a-dia
  21 ##
  22 ##
  23 ##
  24 ###############################################################################
  25 
  26 import pygtk
  27 pygtk.require('2.0')
  28 import gtk
  29 
  30 def mensagem(texto, janela= None):
  31         '''
  32         Uso: Mensagem(texto, janela)
  33         texto   ->      texto a ser exibido nos padrões pango
  34         janela ->       janela ativa
  35         
  36         Apresenta uma caixa de dialogo com o botão 'OK'
  37         com o texto     definido pelo desenvolvedor e o ícone de informação
  38 
  39         Endereço das referências do pango:
  40         http://www.pygtk.org/pygtk2reference/pango-markup-language.html
  41         '''
  42         
  43         dialogo= gtk.MessageDialog(janela, gtk.DIALOG_MODAL,    gtk.MESSAGE_INFO, \
  44         gtk.BUTTONS_OK, texto)
  45         dialogo.set_markup(texto) # texto formatado nos padrões pango
  46         dialogo.run()
  47         dialogo.destroy()
  48         
  49 def mensagem_erro(texto, janela= None):
  50         '''
  51         Uso: Mensagem(texto, janela)
  52         texto   ->      texto a ser exibido nos padrões pango
  53         janela ->       janela ativa
  54         
  55         Apresenta uma caixa de dialogo com o botão 'OK'
  56         com o texto     definido pelo desenvolvedor e com o ícone de erro
  57 
  58         Endereço das referências do pango:
  59         http://www.pygtk.org/pygtk2reference/pango-markup-language.html
  60         '''
  61         
  62         dialogo= gtk.MessageDialog(janela, gtk.DIALOG_MODAL,    gtk.MESSAGE_ERROR, \
  63         gtk.BUTTONS_OK, texto)
  64         dialogo.set_markup(texto) # texto formatado nos padrões pango
  65         dialogo.run()
  66         dialogo.destroy()
  67 
  68 def confirmar(texto, janela= None):
  69         '''
  70         Uso: Confirmar(texto, janela)
  71         texto   ->      texto a ser exibido nos padrões pango
  72         janela ->       janela ativa
  73 
  74         Apresenta uma caixa de dialogo com os botões 'Sim' e 'Não'
  75         com o texto definido pelo desenvolvedor
  76         
  77         Endereço das referências do pango:
  78         http://www.pygtk.org/pygtk2reference/pango-markup-language.html
  79         '''
  80         
  81         dialogo= gtk.MessageDialog (janela, gtk.DIALOG_MODAL, gtk.MESSAGE_QUESTION, \
  82         gtk.BUTTONS_YES_NO, texto)
  83         dialogo.set_markup(texto) # texto formatado nos padrões pango
  84         response = dialogo.run ()
  85         dialogo.destroy ()
  86         if response == gtk.RESPONSE_YES:
  87                 return True
  88         else:
  89                 return False

Exemplo de uso

   1 #-*- encoding: utf8 -*-
   2 
   3 ##
   4 # Esse programa é livre, você pode distribuir e/ou modifica-lo sob os
   5 # termos da licença geral publica GNU publicada pela fundação de software
   6 # livre (Free Software Foundation),  contida na segunda versão da licença
   7 # ou (em sua opinião) outra versão mais recente.
   8 # Esse programa é distribuído na esperança de ser útil e satisfatório,
   9 # mas DESTITUÍDO DE QUALQUER GARANTIA, destituído igualmente da
  10 # COMPATIBILIDADE DE MÁQUINA ou CONVENIÊNCIA PARA PROPÓSITOS
  11 # PARTICULARES. Veja a licença geral publica GNU para opter mais detalhes.
  12 # http://www.gnu.org/copyleft/gpl.html
  13 ##
  14 
  15 ###############################################################################
  16 ## Nome do Arquivo: teste.py
  17 ## Autor: Guedes, Maurilio<billguedes>
  18 ## Data da Criação: 13/08/2005
  19 ## Data da Modificação: 13/08/2005
  20 ## Finalidade: Testar o uso do arquivo utilitario.py
  21 ##
  22 ##
  23 ##
  24 ###############################################################################
  25 
  26 import pygtk
  27 pygtk.require('2.0')
  28 import gtk
  29 import utilitario
  30 
  31 class Principal:
  32         '''Classe principal'''
  33         
  34         def __init__(self):
  35                 '''Incialização padrão'''
  36                 
  37                 # Cria uma janela
  38                 self.janela = gtk.Window(gtk.WINDOW_TOPLEVEL)
  39                 self.janela.set_title("Usando a Rotina Utilitário") # Coloca um título
  40                 self.janela.set_border_width(5) # Especifica uma porda de 5 pixels
  41                 self.janela.set_position(gtk.WIN_POS_CENTER) # Centraliza a janela
  42                 
  43                  # Fecha o aplicativo ao destruir a janela
  44                 self.janela.connect("destroy", gtk.main_quit)
  45                 
  46                 # Cria um botão
  47                 botao= gtk.Button("Executar")
  48                 botao.connect("clicked", self.executar) # Execute o método "executar" ao clicar         
  49                 self.janela.add(botao) # Adiciona o botão na janela
  50                 
  51                 # Mostra todas os widgets adicionados na janela
  52                 self.janela.show_all()
  53 
  54         def executar(self, widget= None):
  55                 '''Executa o código abaixo'''
  56 
  57                 # Mostra uma mensagem de informação, o "<span>", "<b>" são padrão pango
  58                 # Exemplo sem conexão ao "Pai", nesse exemplo você pode selecionar
  59                 # outra janela
  60                 utilitario.mensagem("<b><span color='red'>Atenção</span></b>, Você está "\
  61                 "Preste a <b>Apagar</b> um Arquivo <b>Importante</b>!")
  62 
  63                 # Mostra uma mensagem de informação, o "<span>", "<b>" são padrão pango
  64                 # Exemplo com conexão ao "Pai", nesse exemplo você NÃO pode selecionar
  65                 # outra janela
  66                 utilitario.mensagem("<b><span color='red'>Atenção</span></b>, Você está "\
  67                 "Preste a <b>Apagar</b> um Arquivo <b>Importante</b>!", self.janela)
  68 
  69                 # Mostra uma mesagem de confirmação
  70                 if utilitario.confirmar('<b>Realmente</b> Deseja <b>Apagar</b> este Arquivo?',
  71                 self.janela):
  72                         
  73                         # Mostra uma mensagem de erro
  74                         utilitario.mensagem_erro('Ocorreu um <b>Erro</b> ao Apagar o Arquivo!',
  75                         self.janela)
  76                 else:
  77                         
  78                         # Mostra uma mensagem de informação
  79                         utilitario.mensagem('Operação <b>Abortada</b>!', self.janela)
  80 
  81 
  82 if __name__ == '__main__':
  83         '''Se o aplicativo é principal, execute esse método'''
  84         
  85         # Chama a classe 'Principal'                    
  86         p= Principal()
  87 
  88         # Inicia o aplicativo
  89         gtk.main()

Volta para CookBook.


Guedes, Maurilio <billguedes.python at terra.com.br>