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
- Crie uma pasta com o nome modelo;
- Crie uma pasta com o nome biblioteca dentro da pasta modelo;
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>