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

Revisão 2e 2008-09-26 14:06:57

Excluir mensagem

PyGtkBarraFerramenta

Receita: PyGtkBarraFerramenta

Criação de barra de ferramenta com teclas de atalho. Contém os botões: Novo, Grava, Apaga, Vai, Primeiro, Anterior, Próximo, Último. Também contém uma entrada de texto para digitar o número do registro.

Pasta do sistema

  1. Crie uma pasta com o nome modelo;
  2. Crie uma pasta com o nome biblioteca dentro da pasta modelo;
  3. Crie um arquivo em branco e salve com o nome __init__.py dentro da pasta modelo.

gtkbarracontrole.py

Crie um arquivo com o nome gtkbarracontrole.py e salve dentro da pasta modelo/biblioteca.

   1 #-*- encoding: utf8 -*-
   2 
   3 # ====================================================================
   4 # Este programa é software livre; você pode redistribuí-lo e/ou
   5 # modificá-lo sob os termos da Licença Pública Geral GNU, conforme
   6 # publicada pela Free Software Foundation; tanto a versão 2 da
   7 # Licença como (a seu critério) qualquer versão mais nova.
   8 # Este programa é distribuído na expectativa de ser útil, mas SEM
   9 # QUALQUER GARANTIA; sem mesmo a garantia implícita de
  10 # COMERCIALIZAÇÃO ou de ADEQUAÇÃO A QUALQUER PROPÓSITO EM
  11 # PARTICULAR. Consulte a Licença Pública Geral GNU para obter mais
  12 # detalhes.
  13 # http://www.gnu.org/copyleft/gpl.html
  14 # ====================================================================
  15 
  16 
  17 # ====================================================================
  18 # Agredecimentos
  19 #   Leonardo Rochael Almeida
  20 #   Henrique Romano
  21 # ====================================================================
  22 
  23 
  24 '''
  25 Nota:
  26   Esse código está documentado em python, doxygen e humano.
  27   A documentação doxygen exige dois sustenido "#". Para mais 
  28   informações acesse o sítio: www.doxygen.org
  29 '''
  30 ##
  31 # ====================================================================
  32 # PROJETO: ModeloPadrão
  33 # ====================================================================
  34 # Desenvolvido por: Guedes, Maurilio <billguedes>
  35 # Data criação: 18/08/2006, 10:28
  36 # Data atualização: 
  37 # Atualizado por: 
  38 # @author Guedes, Maurilio <billguedes>
  39 # @file gtkbarracontrole.py
  40 # @begin 08/18/2006
  41 # @update 08/18/2006
  42 # @copyright (C) 2006 by Guedes, Maurilio
  43 # @email billguedes@terra.com.br
  44 # ====================================================================
  45 
  46 
  47 # ====================================================================
  48 # Bibliotecas de terceiros
  49 # ====================================================================
  50 from gtk import Toolbar     # Barra de ferramenta
  51 from gtk import Button      # Botão
  52 from gtk import Image       # Imagem
  53 from gtk import ToolItem    # Item para barra de ferramenta
  54 from gtk import Entry       # Caixa de entrada
  55 from gtk import Tooltips    # Dicas para as bugigangas
  56 from gtk import STOCK_NEW   # Ícone no estoque 'novo'
  57 from gtk import STOCK_SAVE  # Ícone no estoque 'grava'
  58 from gtk import STOCK_DELETE  # Ícone no estoque 'apaga'
  59 from gtk import STOCK_JUMP_TO # Ícone no estoque 'salte para'
  60 from gtk import STOCK_FIND  # Ícone no estoque 'procura'
  61 from gtk import STOCK_GOTO_FIRST # Ícone no estoque 'vai ao primeiro'
  62 from gtk import STOCK_GO_DOWN # Ícone no estoque 'vai para baixo'
  63 from gtk import STOCK_GO_UP   # Ícone no estoque 'vai para cima'
  64 from gtk import STOCK_GOTO_LAST # Ícone no estoque 'vai para o último'
  65 from gtk import STOCK_PRINT # Ícone no estoque 'imprime'
  66 from gtk import STOCK_CLOSE # Ícone no estoque 'fecha'
  67 from gtk import ICON_SIZE_LARGE_TOOLBAR # Tamanho do ícone
  68 from gtk import RELIEF_NONE # Sem relevo
  69 from gtk import SeparatorToolItem   # Separador para barra
  70 
  71 
  72 # ====================================================================
  73 # Bibliotecas próprias
  74 # ====================================================================
  75 # Nada
  76 
  77 
  78 ##
  79 # ====================================================================
  80 # Documentação da Classe: GtkBarraControle
  81 # ====================================================================
  82 # @short
  83 #   Classe responsável em criar a barra de controle padrão.
  84 #   O objetivo é criar uma barra de controle padrão para ser 
  85 #   chamada em todo cadastro. A barra de controle contém os 
  86 #   botões: novo, grava, apaga,vai, registro, pesquisa, primeiro,
  87 #   anterior, proximo, ultimo, imprime e fecha.
  88 # Assunto: gtkbarracontrole
  89 # Superclasse: gtk.Toolbar
  90 # @class GtkBarraControle
  91 # @author Guedes, Maurilio <billguedes>
  92 # @version 0.1.0
  93 # @since 0.1.0
  94 # @see gtk.Toolbar
  95 # ====================================================================
  96 class GtkBarraControle(Toolbar):
  97     '''
  98     Classe responsável em criar a barra de controle padrão.
  99     O objetivo é criar uma barra de controle padrão para ser 
 100     chamada em todo cadastro. A barra de controle contém os 
 101     botões: novo, grava, apaga,vai, registro, pesquisa, primeiro,
 102     anterior, proximo, ultimo, imprime e fecha.
 103     '''
 104     
 105     ##
 106     # @short
 107     #   Construtor padrão.
 108     # @fn __init__ Método padrão, chamada automatica na criação.
 109     # @param self Ponteiro do objeto.
 110     def __init__(self):
 111         '''
 112         Construtor padrão.
 113         Método padrão, chamada automatica na criação.
 114         '''
 115         
 116         Toolbar.__init__(self) # Inicialização da superclasse
 117         
 118         # -- Atributos públicos---------------------------------------
 119         # Cria novos objetos Button
 120         ## @var mNovoBotao Botão para novo registro
 121         self.mNovoBotao= Button('')
 122         
 123         ## @var mNovoBotao Botão para atualizar o registro
 124         self.mGravaBotao= Button('')
 125         
 126         ## @var mNovoBotao Botão para apagar o registro
 127         self.mApagaBotao= Button('')
 128         
 129         ## @var mNovoBotao Botão para ir ao registro 'x'
 130         self.mVaiBotao= Button('')
 131         
 132         ## @var mNovoBotao Botão para pesquisar os registros
 133         self.mPesquisaBotao= Button('')
 134         
 135         ## @var mNovoBotao Botão para ir ao primeiro registro
 136         self.mPrimeiroBotao= Button('')
 137         
 138         ## @var mNovoBotao Botão para ir ao registro anterior
 139         self.mAnteriorBotao= Button('')
 140         
 141         ## @var mNovoBotao Botão para ir ao próximo registro
 142         self.mProximoBotao= Button('')
 143         
 144         ## @var mNovoBotao Botão para ir ao último registro
 145         self.mUltimoBotao= Button('')
 146         
 147         ## @var mNovoBotao Botão para imprimir o conteúdo do registro
 148         self.mImprimeBotao= Button('')
 149         
 150         ## @var mNovoBotao Botão para fechar a janela
 151         self.mFechaBotao= Button('')
 152         
 153         
 154         ## @var mNovoBotao Botão para entrar com o número do registro
 155         self.mRegistroEntrada= Entry() # Cria um novo objeto Entry
 156         # -- Fim dos atributos públicos-------------------------------
 157         
 158         
 159         # -- Atributos privados --------------------------------------
 160         # Cria novas objetos Image
 161         self.__mNovoImagem= Image()
 162         self.__mGravaImagem= Image()
 163         self.__mApagaImagem= Image()
 164         self.__mVaiImagem= Image()
 165         self.__mPesquisaImagem= Image()
 166         self.__mPrimeiroImagem= Image()
 167         self.__mAnteriorImagem= Image()
 168         self.__mProximoImagem= Image()
 169         self.__mAnteriorImagem= Image()
 170         self.__mProximoImagem= Image()
 171         self.__mUltimoImagem= Image()
 172         self.__mImprimeImagem= Image()
 173         self.__mFechaImagem= Image()
 174         
 175         # Cria novos objetos ToolItem
 176         self.__mNovoItem= ToolItem()
 177         self.__mGravaItem= ToolItem()
 178         self.__mApagaItem= ToolItem()
 179         self.__mVaiItem= ToolItem()
 180         self.__mRegistroItem= ToolItem()
 181         self.__mPesquisaItem= ToolItem()
 182         self.__mPrimeiroItem= ToolItem()
 183         self.__mAnteriorItem= ToolItem()
 184         self.__mProximoItem= ToolItem()
 185         self.__mUltimoItem= ToolItem()
 186         self.__mImprimeItem= ToolItem()
 187         self.__mFechaItem= ToolItem()
 188         
 189         self.__mDicas= Tooltips() # Cria um novo objeto Tooltips
 190         # -- Fim dos atributos privados ------------------------------
 191         
 192         
 193         # -- Configuração do objeto mNovoBotao -----------------------
 194         self.__mNovoImagem.set_from_stock(STOCK_NEW, 
 195             ICON_SIZE_LARGE_TOOLBAR)
 196         self.mNovoBotao.set_image(self.__mNovoImagem)
 197         self.mNovoBotao.set_relief(RELIEF_NONE)
 198         self.mNovoBotao.set_focus_on_click(False)
 199         self.__mDicas.set_tip(self.mNovoBotao, "Cria um novo "\
 200             "registro (F2)")
 201         self.__mNovoItem.add(self.mNovoBotao)
 202         # -- Fim da configuração do objeto mNovoBotao ----------------
 203 
 204 
 205         # -- Configuração do objeto mGravaBotao ----------------------
 206         self.__mGravaImagem.set_from_stock(STOCK_SAVE, 
 207             ICON_SIZE_LARGE_TOOLBAR)
 208         self.mGravaBotao.set_image(self.__mGravaImagem)
 209         self.mGravaBotao.set_relief(RELIEF_NONE)
 210         self.mGravaBotao.set_focus_on_click(False)
 211         self.__mDicas.set_tip(self.mGravaBotao, "Grava o registro "\
 212             "atual (F3)")
 213         self.__mGravaItem.add(self.mGravaBotao)
 214         # -- Fim da configuração do objeto mGravaBotao ---------------
 215         
 216 
 217         # -- Configuração do objeto mApagaBotao ----------------------
 218         self.__mApagaImagem.set_from_stock(STOCK_DELETE, 
 219             ICON_SIZE_LARGE_TOOLBAR)
 220         self.mApagaBotao.set_image(self.__mApagaImagem)
 221         self.mApagaBotao.set_relief(RELIEF_NONE)
 222         self.mApagaBotao.set_focus_on_click(False)
 223         self.__mDicas.set_tip(self.mApagaBotao, "Apaga o registro "\
 224             "atual (F4)")
 225         self.__mApagaItem.add(self.mApagaBotao)
 226         # -- Fim da configuração do objeto mApagaBotao ---------------
 227         
 228 
 229         # -- Configuração do objeto mVaiBotao ------------------------
 230         self.__mVaiImagem.set_from_stock(STOCK_JUMP_TO, 
 231             ICON_SIZE_LARGE_TOOLBAR)
 232         self.mVaiBotao.set_image(self.__mVaiImagem)
 233         self.mVaiBotao.set_relief(RELIEF_NONE)
 234         self.mVaiBotao.set_focus_on_click(False)
 235         self.__mDicas.set_tip(self.mVaiBotao, "Vai para o registro "\
 236             "'x' (F5)")
 237         self.__mVaiItem.add(self.mVaiBotao)
 238         # -- Fim da configuração do objeto mVaiBotao -----------------
 239 
 240         
 241         # -- Configuração do objeto mRegistroEntrada -----------------
 242         self.mRegistroEntrada.set_max_length(5)
 243         self.mRegistroEntrada.set_width_chars(5)
 244         self.__mDicas.set_tip(self.mRegistroEntrada, "Coloque aqui "\
 245             "o número do registro que deseja ir (F6)")
 246         self.__mRegistroItem.add(self.mRegistroEntrada)
 247         # -- Fim da configuração do objeto mVaiBotao -----------------
 248 
 249 
 250         # -- Configuração do objeto mPesquisaBotao -------------------
 251         self.__mPesquisaImagem.set_from_stock(STOCK_FIND, 
 252             ICON_SIZE_LARGE_TOOLBAR)
 253         self.mPesquisaBotao.set_image(self.__mPesquisaImagem)
 254         self.mPesquisaBotao.set_relief(RELIEF_NONE)
 255         self.mPesquisaBotao.set_focus_on_click(False)
 256         self.__mDicas.set_tip(self.mPesquisaBotao, "Pesquisa o "\
 257             "cadastro (F7)")
 258         self.__mPesquisaItem.add(self.mPesquisaBotao)
 259         # -- Fim da configuração do objeto mPesquisaBotao ------------
 260 
 261         
 262         # -- Configuração do objeto mPrimeiroBotao -------------------
 263         self.__mPrimeiroImagem.set_from_stock(STOCK_GOTO_FIRST, 
 264             ICON_SIZE_LARGE_TOOLBAR)
 265         self.mPrimeiroBotao.set_image(self.__mPrimeiroImagem)
 266         self.mPrimeiroBotao.set_relief(RELIEF_NONE)
 267         self.mPrimeiroBotao.set_focus_on_click(False)
 268         self.__mDicas.set_tip(self.mPrimeiroBotao, "Vai para o "\
 269             "primeiro registro (Ctrl + Esquerda)")
 270         self.__mPrimeiroItem.add(self.mPrimeiroBotao)
 271         # -- Fim da configuração do objeto mPrimeiroBotao ------------
 272 
 273         
 274         # -- Configuração do objeto mAnteriorBotao -------------------
 275         self.__mAnteriorImagem.set_from_stock(STOCK_GO_DOWN, 
 276             ICON_SIZE_LARGE_TOOLBAR)
 277         self.mAnteriorBotao.set_image(self.__mAnteriorImagem)
 278         self.mAnteriorBotao.set_relief(RELIEF_NONE)
 279         self.mAnteriorBotao.set_focus_on_click(False)
 280         self.__mDicas.set_tip(self.mAnteriorBotao, "Vai para o "\
 281             "registro anterior (Ctrl + Abaixo)")
 282         self.__mAnteriorItem.add(self.mAnteriorBotao)
 283         # -- Fim da configuração do objeto mAnteriorBotao ------------
 284 
 285         
 286         # -- Configuração do objeto mProximoBotao --------------------
 287         self.__mProximoImagem.set_from_stock(STOCK_GO_UP, 
 288             ICON_SIZE_LARGE_TOOLBAR)
 289         self.mProximoBotao.set_image(self.__mProximoImagem)
 290         self.mProximoBotao.set_relief(RELIEF_NONE)
 291         self.mProximoBotao.set_focus_on_click(False)
 292         self.__mDicas.set_tip(self.mProximoBotao, "Vai para o "\
 293             "próximo registro (Ctrl + Acima)")
 294         self.__mProximoItem.add(self.mProximoBotao)
 295         # -- Fim da configuração do objeto mProximoBotao -------------
 296 
 297         
 298         # -- Configuração do objeto mUltimoBotao ---------------------
 299         self.__mUltimoImagem.set_from_stock(STOCK_GOTO_LAST, 
 300             ICON_SIZE_LARGE_TOOLBAR)
 301         self.mUltimoBotao.set_image(self.__mUltimoImagem)
 302         self.mUltimoBotao.set_relief(RELIEF_NONE)
 303         self.mUltimoBotao.set_focus_on_click(False)
 304         self.__mDicas.set_tip(self.mUltimoBotao, "Vai para o "\
 305             "último registro (Ctrl + Direita)")
 306         self.__mUltimoItem.add(self.mUltimoBotao)
 307         # -- Fim da configuração do objeto mUltimoBotao --------------
 308 
 309         
 310         # -- Configuração do objeto mImprimeBotao --------------------
 311         self.__mImprimeImagem.set_from_stock(STOCK_PRINT, 
 312             ICON_SIZE_LARGE_TOOLBAR)
 313         self.mImprimeBotao.set_image(self.__mImprimeImagem)
 314         self.mImprimeBotao.set_relief(RELIEF_NONE)
 315         self.mImprimeBotao.set_focus_on_click(False)
 316         self.__mDicas.set_tip(self.mImprimeBotao, "Imprime o "\
 317             "cadastro (Ctrl + P")
 318         self.__mImprimeItem.add(self.mImprimeBotao)
 319         # -- Fim da configuração do objeto mImprimeBotao -------------
 320 
 321         
 322         # -- Configuração do objeto mFechaBotao ----------------------
 323         self.__mFechaImagem.set_from_stock(STOCK_CLOSE, 
 324             ICON_SIZE_LARGE_TOOLBAR)
 325         self.mFechaBotao.set_image(self.__mFechaImagem)
 326         self.mFechaBotao.set_relief(RELIEF_NONE)
 327         self.mFechaBotao.set_focus_on_click(False)
 328         self.__mDicas.set_tip(self.mFechaBotao, "Fecha a tela (Esc)")
 329         self.__mFechaItem.add(self.mFechaBotao)
 330         # -- Fim da configuração do objeto mFechaBotao ---------------
 331 
 332         
 333         # -- Configuração da barra de ferramenta padrão --------------
 334         # Adiciona os itens na barra de ferramenta
 335         self.insert(self.__mNovoItem, -1)
 336         self.insert(self.__mGravaItem, -1)
 337         self.insert(self.__mApagaItem, -1)
 338         self.insert(SeparatorToolItem(), -1)
 339         self.insert(self.__mVaiItem, -1)
 340         self.insert(self.__mRegistroItem, -1)
 341         self.insert(SeparatorToolItem(), -1)
 342         self.insert(self.__mPesquisaItem, -1)
 343         self.insert(SeparatorToolItem(), -1)
 344         self.insert(self.__mPrimeiroItem, -1)
 345         self.insert(self.__mAnteriorItem, -1)
 346         self.insert(self.__mProximoItem, -1)
 347         self.insert(self.__mUltimoItem, -1)
 348         self.insert(SeparatorToolItem(), -1)
 349         self.insert(self.__mImprimeItem, -1)
 350         self.insert(SeparatorToolItem(), -1)
 351         self.insert(self.__mFechaItem, -1)
 352         # -- Fim da configuração da barra de ferramenta padrão -------
 353         
 354         
 355         self.__mDicas.enable() # Ativa a exibição

gtkjanela.py

Crie um arquivo com o nome gtkjanela.py e salve dentro da pasta modelo/biblioteca.

   1 #-*- encoding: utf8 -*-
   2 
   3 # ====================================================================
   4 # Este programa é software livre; você pode redistribuí-lo e/ou
   5 # modificá-lo sob os termos da Licença Pública Geral GNU, conforme
   6 # publicada pela Free Software Foundation; tanto a versão 2 da
   7 # Licença como (a seu critério) qualquer versão mais nova.
   8 # Este programa é distribuído na expectativa de ser útil, mas SEM
   9 # QUALQUER GARANTIA; sem mesmo a garantia implícita de
  10 # COMERCIALIZAÇÃO ou de ADEQUAÇÃO A QUALQUER PROPÓSITO EM
  11 # PARTICULAR. Consulte a Licença Pública Geral GNU para obter mais
  12 # detalhes.
  13 # http://www.gnu.org/copyleft/gpl.html
  14 # ====================================================================
  15 
  16 
  17 '''
  18 Nota:
  19   Esse código está documentado em python, doxygen e humano.
  20   A documentação doxygen exige dois sustenido "#". Para mais 
  21   informações acesse o sítio: www.doxygen.org
  22 '''
  23 ##
  24 # ====================================================================
  25 # PROJETO: ModeloPadrão
  26 # ====================================================================
  27 # Desenvolvido por: Guedes, Maurilio <billguedes>
  28 # Data criação: 18/08/2006, 18:48
  29 # Data atualização: 
  30 # Atualizado por: 
  31 # @author Guedes, Maurilio <billguedes>
  32 # @file gtkjanela.py
  33 # @begin 08/18/2006
  34 # @update 08/18/2006
  35 # @copyright (C) 2006 by Guedes, Maurilio
  36 # @email billguedes@terra.com.br
  37 # ====================================================================
  38 
  39 
  40 # ====================================================================
  41 # Bibliotecas de terceiros
  42 # ====================================================================
  43 from gtk import Window      # Janela
  44 from gtk import VBox        # Caixa vertical
  45 from gtk import WIN_POS_CENTER_ALWAYS # Posição centralizada
  46 from gtk.gdk import WINDOW_TYPE_HINT_DIALOG # Modo diálogo
  47 from gtk.gdk import LOCK_MASK # Tecla fechada, independe do caps-lock
  48 from gtk.gdk import CONTROL_MASK # Tecla com control
  49 from gtk import ACCEL_VISIBLE # Acesso visível
  50 from gtk import ACCEL_LOCKED # Acesso fechado
  51 from gtk import AccelGroup  # Grupo de teclas de aceleração
  52 from gtk.keysyms import F2  # Tecla F2 
  53 from gtk.keysyms import F3  # Tecla F3
  54 from gtk.keysyms import F4  # Tecla F4 
  55 from gtk.keysyms import F5  # Tecla F5 
  56 from gtk.keysyms import F6  # Tecla F6 
  57 from gtk.keysyms import F7  # Tecla F7 
  58 from gtk.keysyms import Left  # Tecla esquerda 
  59 from gtk.keysyms import Right  # Tecla direita 
  60 from gtk.keysyms import Up  # Tecla acima 
  61 from gtk.keysyms import Down  # Tecla abaixo 
  62 from gtk.keysyms import Escape  # Tecla 'Esc' 
  63 from gtk.keysyms import P   # Tecla 'P'
  64 from gtk import main_quit   # Saida do gtk
  65 
  66 
  67 # ====================================================================
  68 # Bibliotecas próprias
  69 # ====================================================================
  70 from biblioteca.gtkbarracontrole import GtkBarraControle
  71 
  72 
  73 ##
  74 # ====================================================================
  75 # Documentação da Classe: GtkJanela
  76 # ====================================================================
  77 # @short
  78 #   Classe responsável em criar a janela.
  79 #   O objetivo é criar a janela e adicionar a barra de ferramenta.
  80 # Assunto: gtkjanela
  81 # Superclasse: gtk.Window
  82 # @class GtkJanela
  83 # @author Guedes, Maurilio <billguedes>
  84 # @version 0.1.0
  85 # @since 0.1.0
  86 # @see gtk.Window
  87 # @see GtkBarraControle
  88 # ====================================================================
  89 class GtkJanela(Window):
  90     '''
  91     Classe responsável em criar a janela.
  92     O objetivo é criar a janela e adicionar a barra de ferramenta.
  93     '''
  94     
  95     ##
  96     # @fn __init__ Método padrão, chamada automatica na criação.
  97     # @param self Ponteiro do objeto.
  98     def __init__(self):
  99         '''
 100         Método padrão, chamada automatica na criação.
 101         '''
 102         
 103         Window.__init__(self) # Inicialização da superclasse
 104         
 105         # -- Atributos privados --------------------------------------
 106         self.__mBarra= GtkBarraControle()
 107         self.__mVCaixa= VBox()
 108         self.__mVCaixa.pack_start(self.__mBarra, False, False, 0)
 109         self.__mGrupoTeclas= AccelGroup()
 110         # -- Fim dos atributos privados ------------------------------
 111 
 112         
 113         # -- Conexões dos botões -------------------------------------
 114         self.__mBarra.mNovoBotao.connect("clicked", 
 115             self.onPrepararNovo)
 116         self.__mBarra.mGravaBotao.connect("clicked", self.onGravar)
 117         self.__mBarra.mApagaBotao.connect("clicked", self.onApagar)
 118         self.__mBarra.mVaiBotao.connect("clicked", self.onIrPara)
 119         self.__mBarra.mPesquisaBotao.connect("clicked", 
 120             self.onPesquisar)
 121         self.__mBarra.mPrimeiroBotao.connect("clicked", 
 122             self.onIrPrimeiro)
 123         self.__mBarra.mAnteriorBotao.connect("clicked", 
 124             self.onIrAnterior)
 125         self.__mBarra.mProximoBotao.connect("clicked", 
 126             self.onIrProximo)
 127         self.__mBarra.mUltimoBotao.connect("clicked", 
 128             self.onIrUltimo)
 129         self.__mBarra.mImprimeBotao.connect("clicked", 
 130             self.onImprimir)
 131         self.__mBarra.mFechaBotao.connect("clicked", self.onFechar)
 132         self.connect("delete_event", self.onDestruir)
 133         # -- Fim das conexões dos botões -----------------------------
 134 
 135 
 136         # -- Configuração das teclas de atalho -----------------------
 137         self.__mBarra.mNovoBotao.add_accelerator("clicked", 
 138             self.__mGrupoTeclas, F2, LOCK_MASK, ACCEL_VISIBLE)
 139         self.__mBarra.mGravaBotao.add_accelerator("clicked", 
 140             self.__mGrupoTeclas, F3, LOCK_MASK, ACCEL_VISIBLE)
 141         self.__mBarra.mApagaBotao.add_accelerator("clicked", 
 142             self.__mGrupoTeclas, F4, LOCK_MASK, ACCEL_VISIBLE)
 143         self.__mBarra.mVaiBotao.add_accelerator("clicked", 
 144             self.__mGrupoTeclas, F5, LOCK_MASK, ACCEL_VISIBLE)
 145         self.__mBarra.mRegistroEntrada.add_accelerator("grab_focus", 
 146             self.__mGrupoTeclas, F6, LOCK_MASK, ACCEL_LOCKED)
 147         self.__mBarra.mPesquisaBotao.add_accelerator("clicked", 
 148             self.__mGrupoTeclas, F7, LOCK_MASK, ACCEL_VISIBLE)
 149         self.__mBarra.mPrimeiroBotao.add_accelerator("clicked", 
 150             self.__mGrupoTeclas, Left, CONTROL_MASK, ACCEL_VISIBLE)
 151         self.__mBarra.mAnteriorBotao.add_accelerator("clicked", 
 152             self.__mGrupoTeclas, Down, CONTROL_MASK, ACCEL_VISIBLE)
 153         self.__mBarra.mProximoBotao.add_accelerator("clicked", 
 154             self.__mGrupoTeclas, Up, CONTROL_MASK, ACCEL_VISIBLE)
 155         self.__mBarra.mUltimoBotao.add_accelerator("clicked", 
 156             self.__mGrupoTeclas, Right, CONTROL_MASK, ACCEL_VISIBLE)
 157         self.__mBarra.mImprimeBotao.add_accelerator("clicked", 
 158             self.__mGrupoTeclas, P, CONTROL_MASK, ACCEL_VISIBLE)
 159         self.__mBarra.mFechaBotao.add_accelerator("clicked", 
 160             self.__mGrupoTeclas, Escape, LOCK_MASK, ACCEL_VISIBLE)
 161         # -- Fim da configuração das teclas de atalho ----------------
 162         
 163         
 164         # -- Configuração da janela padrão ---------------------------
 165         self.set_title("Modelo para Teste")
 166         self.set_border_width(5)
 167         self.set_resizable(False)
 168         self.set_position(WIN_POS_CENTER_ALWAYS)
 169         self.set_type_hint(WINDOW_TYPE_HINT_DIALOG)
 170         self.add_accel_group(self.__mGrupoTeclas)
 171         self.set_size_request(600, 300)
 172         self.add(self.__mVCaixa)
 173         self.show_all()
 174         # -- Fim da configuração da janela padrão --------------------
 175 
 176 
 177     # -- Método onPrepararNovo ---------------------------------------
 178     ##
 179     # @fn onPreprarNovo Limpa as bugigangas para receber novos dados.
 180     # @param self Ponteiro do objeto.
 181     # @param bugiganga Bugiganga (widget) passado automáticamente ao
 182     #   clicar no botão.
 183     def onPrepararNovo(self, bugiganga):
 184         '''
 185         Limpa as bugigangas para receber novos dados.
 186         '''
 187         
 188         print "Cliquei em Novo."
 189     # -- Fim do método onPrepararNovo --------------------------------
 190 
 191         
 192     # -- Método onGravar ---------------------------------------------
 193     ##
 194     # @fn onGravar Pega o conteúdo das bugigangas e grava no banco.
 195     # @param self Ponteiro do objeto.
 196     # @param bugiganga Bugiganga (widget) passado automáticamente ao
 197     #   clicar no botão.
 198     def onGravar(self, bugiganga):
 199         '''
 200         Pega o conteúdo das bugigangas e grava no banco.
 201         '''
 202         
 203         print "Cliquei no Grava."
 204     # -- Fim do método onGravar --------------------------------------
 205 
 206 
 207 
 208     # -- Método onApagar ---------------------------------------------
 209     ##
 210     # @fn onApagar Apaga o registro carregado. 
 211     # @param self Ponteiro do objeto.
 212     # @param bugiganga Bugiganga (widget) passado automáticamente ao
 213     #   clicar no botão.
 214     def onApagar(self, bugiganga):
 215         '''
 216         Apaga o registro carregado. 
 217         '''
 218         
 219         print "Cliquei no Apaga."
 220     # -- Fim do método onApagar --------------------------------------
 221 
 222 
 223     # -- Método onIrPara ---------------------------------------------
 224     ##
 225     # @fn onIrPara Carrega o registro indicado.
 226     # @param self Ponteiro do objeto.
 227     # @param bugiganga Bugiganga (widget) passado automáticamente ao
 228     #   clicar no botão.
 229     def onIrPara(self, bugiganga):
 230         '''
 231         Vai para o registro indicado.
 232         '''
 233         
 234         print "Cliquei no VaiPara."
 235         
 236         registro= self.__mBarra.mRegistroEntrada.get_text()
 237         
 238         if (registro.isdigit()):
 239             print "Você escolheu o registro %s" % \
 240                 self.__mBarra.mRegistroEntrada.get_text()
 241         else:
 242             print "Você tem que colocar o número do registro"
 243     # -- Fim do método onIrPara --------------------------------------
 244 
 245 
 246     # -- Método onPesquisar ------------------------------------------
 247     ##
 248     # @fn onPesquisar Abre uma tela para pesquisa no cadastro.
 249     # @param self Ponteiro do objeto.
 250     # @param bugiganga Bugiganga (widget) passado automáticamente ao
 251     #   clicar no botão.
 252     def onPesquisar(self, bugiganga):
 253         '''
 254         Abre uma tela para pesquisa no cadastro.
 255         '''
 256         
 257         print "Cliquei no Pesquisa."
 258     # -- Fim do método onPesquisar -----------------------------------
 259         
 260         
 261     # -- Método onIrPrimeiro -----------------------------------------
 262     ##
 263     # @fn onIrPrimeiro Carrega o primeiro registro do banco de dados.
 264     # @param self Ponteiro do objeto.
 265     # @param bugiganga Bugiganga (widget) passado automáticamente ao
 266     #   clicar no botão.
 267     def onIrPrimeiro(self, bugiganga):
 268         '''
 269         Carrega o primeiro registro do banco de dados.
 270         '''
 271         
 272         print "Cliquei no Primeiro."
 273     # -- Fim do método onIrPrimeiro ----------------------------------
 274 
 275 
 276     # -- Método onIrAnterior -----------------------------------------
 277     ##
 278     # @fn onIrAnterior Carrega o registro anterior do banco de dados.
 279     # @param self Ponteiro do objeto.
 280     # @param bugiganga Bugiganga (widget) passado automáticamente ao
 281     #   clicar no botão.
 282     def onIrAnterior(self, bugiganga):
 283         '''
 284         Carrega o registro anterior do banco de dados.
 285         '''
 286         
 287         print "Cliquei no Anterior."
 288     # -- Fim do método onIrAnterior ----------------------------------
 289 
 290 
 291     # -- Método onIrProximo ------------------------------------------
 292     ##
 293     # @fn onIrProximo Carrega o próximo registro do banco de dados.
 294     # @param self Ponteiro do objeto.
 295     # @param bugiganga Bugiganga (widget) passado automáticamente ao
 296     #   clicar no botão.
 297     def onIrProximo(self, bugiganga):
 298         '''
 299         Carrega o próximo registro do banco de dados.
 300         '''
 301         
 302         print "Cliquei no Próximo."
 303     # -- Fim do método onIrProximo -----------------------------------
 304 
 305 
 306     # -- Método onIrUltimo -------------------------------------------
 307     ##
 308     # @fn onIrUltimo Carrega o último registro do banco de dados.
 309     # @param self Ponteiro do objeto.
 310     # @param bugiganga Bugiganga (widget) passado automáticamente ao
 311     #   clicar no botão.
 312     def onIrUltimo(self, bugiganga):
 313         '''
 314         Carrega o último registro do banco de dados.
 315         '''
 316         
 317         print "Cliquei no Último."
 318     # -- Fim do método onIrUltimo ------------------------------------
 319 
 320 
 321     # -- Método onImprimir -------------------------------------------
 322     ##
 323     # @fn onImprimir Imprime o registro carregado.
 324     # @param self Ponteiro do objeto.
 325     # @param bugiganga Bugiganga (widget) passado automáticamente ao
 326     #   clicar no botão.
 327     def onImprimir(self, bugiganga):
 328         '''
 329         Imprime o registro carregado.
 330         '''
 331         
 332         print "Cliquei no Imprimir."
 333     # -- Fim do método onImprimir ------------------------------------
 334 
 335 
 336     # -- Método onFechar ---------------------------------------------
 337     ##
 338     # @fn onFechar Fecha a tela.
 339     # @param self Ponteiro do objeto.
 340     # @param bugiganga Bugiganga (widget) passado automáticamente ao
 341     #   clicar no botão.
 342     def onFechar(self, bugiganga):
 343         '''
 344         Fecha a tela.
 345         '''
 346         
 347         print "Cliquei no Fechar."
 348     # -- Fim do método onFechar --------------------------------------
 349 
 350 
 351     # -- Método onDestruir -------------------------------------------
 352     ##
 353     # @fn onDestruir Fecha a tela.
 354     # @param self Ponteiro do objeto.
 355     # @param bugiganga Bugiganga (widget) passado automáticamente ao
 356     #   clicar no 'x' da janela.
 357     # @param evento Evento passado automáticamente ao clicar no 'x'
 358     #   da janela.
 359     def onDestruir(self, bugiganga, evento):
 360         '''
 361         Fecha a tela.
 362         '''
 363         
 364         print "Cliquei no 'X' da janela."
 365         self.hide()
 366         main_quit()       
 367     # -- Fim do método onDestruir ------------------------------------

Exemplo de uso

Crie um arquivo com o nome abre.py e salve na pasta modelo.

   1 #-*- encoding: utf8 -*-
   2 
   3 # ====================================================================
   4 # Este programa é software livre; você pode redistribuí-lo e/ou
   5 # modificá-lo sob os termos da Licença Pública Geral GNU, conforme
   6 # publicada pela Free Software Foundation; tanto a versão 2 da
   7 # Licença como (a seu critério) qualquer versão mais nova.
   8 # Este programa é distribuído na expectativa de ser útil, mas SEM
   9 # QUALQUER GARANTIA; sem mesmo a garantia implícita de
  10 # COMERCIALIZAÇÃO ou de ADEQUAÇÃO A QUALQUER PROPÓSITO EM
  11 # PARTICULAR. Consulte a Licença Pública Geral GNU para obter mais
  12 # detalhes.
  13 # http://www.gnu.org/copyleft/gpl.html
  14 # ====================================================================
  15 
  16 
  17 '''
  18 Nota:
  19   Esse código está documentado em python, doxygen e humano.
  20   A documentação doxygen exige dois sustenido "#". Para mais 
  21   informações acesse o sítio: www.doxygen.org
  22 '''
  23 ##
  24 # ====================================================================
  25 # PROJETO: ModeloPadrão
  26 # ====================================================================
  27 # Desenvolvido por: Guedes, Maurilio <billguedes>
  28 # Data criação: 18/08/2006, 13:34
  29 # Data atualização: 
  30 # Atualizado por: 
  31 # @author Guedes, Maurilio <billguedes>
  32 # @file abre.py
  33 # @begin 08/18/2006
  34 # @update 08/18/2006
  35 # @copyright (C) 2006 by Guedes, Maurilio
  36 # @email billguedes@terra.com.br
  37 # ====================================================================
  38 
  39 
  40 # ====================================================================
  41 # Bibliotecas de terceiros
  42 # ====================================================================
  43 from gtk import main        # Principal
  44 
  45 
  46 # ====================================================================
  47 # Bibliotecas próprias
  48 # ====================================================================
  49 from biblioteca.gtkjanela import GtkJanela
  50 
  51 
  52 if __name__ == "__main__":
  53     GtkJanela()
  54     main()

Volta para CookBook.


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