Receita: Várias Rotinas Usando ComboBoxEntry no PyGtk
Exemplo de várias rotinas de comboboxentry para usar no 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 combo_entry_autocompletar(combo, coluna= 0, caracter= 1):
31 '''
32 Uso: combo_entry_autocompletar(combo, coluna, tecla)
33 combo -> ponteiro do comboboxentry
34 coluna -> número da coluna que usará o autocomplemento
35 caracter -> apartir de quantos e caracteres digitados ocorerá o autocomplemento
36
37 Adiciona o recurso de autocomplemento no comboboxentry
38 '''
39
40 completar= gtk.EntryCompletion()
41 completar.set_model(combo.get_model())
42 completar.set_minimum_key_length(caracter)
43 completar.set_text_column(coluna)
44 combo.child.set_completion(completar)
45
46 def combo_entry_selecao(combo, retorno_coluna= 0, coluna= 0):
47 '''
48 Uso: combo_entry_selecao(combo, retorno_coluna= 0, coluna= 0)
49 combo -> ponteiro do comboboxentry
50 retorno_coluna -> número da coluna para retorno
51 coluna -> número da coluna que será comparada
52
53 Seleciona o texto do registro atual no comboboxentry
54 '''
55
56 texto = combo.child.get_text()
57 lista= combo.get_model()
58 if texto:
59 for registro in lista:
60 if registro[coluna] == texto: return registro[retorno_coluna]
61 combo.child.grab_focus()
62 # combo.child.select_region(0, -1)
63
64 # Rotina vista em http://www.pythonbrasil.com.br/moin.cgi/PyGtkMensagens
65 mensagem_erro('Você Deve Escolher um Item da Lista!')
66 return 0
67
68 def combo_entry_selecionar(texto, combo, coluna= 0):
69 '''
70 Uso: combo_entry_selecionar(texto,combo, coluna)
71 texto -> texto a ser selecionado no comboboxentry
72 combo -> ponteiro do comboboxentry
73 coluna -> número da coluna que será comparada
74
75 Seleciona o texto no comboboxentry
76 '''
77
78 indice= 0
79 modelo= combo.get_model()
80 for registro in modelo:
81 if registro[coluna] == texto:
82 combo.set_active(indice)
83 break
84 indice+= 1
85
86 def carregar_data(dia, mes, ano):
87 '''
88 Uso: carregar_data(dia, mes, ano)
89 dia -> ponteiro do comboboxentry referente ao dia
90 mes -> ponteiro do comboboxentry referente ao mês
91 ano -> ponteiro do comboboxentry referente ao ano
92
93 Carrega o dia, mês e ano nos comboboxentry correspondente
94 '''
95
96 modelo= gtk.ListStore(str)
97 for i in range(1, 32):
98 texto= str('%02.f') % i
99 modelo.append([texto])
100 dia.set_model(modelo)
101
102 modelo= gtk.ListStore(str, str)
103 modelo.append(['Janeiro', '01'])
104 modelo.append(['Fevereiro', '02'])
105 modelo.append(['Março', '03'])
106 modelo.append(['Abril', '04'])
107 modelo.append(['Maio', '05'])
108 modelo.append(['Junho', '06'])
109 modelo.append(['Julho', '07'])
110 modelo.append(['Agosto', '08'])
111 modelo.append(['Setembro', '09'])
112 modelo.append(['Outubro', '10'])
113 modelo.append(['Novembro', '11'])
114 modelo.append(['Dezembro', '12'])
115 mes.set_model(modelo)
116
117 modelo= gtk.ListStore(str)
118 for i in range(1900, 2100):
119 modelo.append([i])
120 ano.set_model(modelo)
121
122 combo_entry_autocompletar(dia)
123 combo_entry_autocompletar(mes)
124 combo_entry_autocompletar(ano)
125
126 def carregar_semana(combo):
127 '''
128 Uso: carregar_semana(combo)
129 combo -> ponteiro do comboboxentry
130
131 Carrega os dias da semana no combo especificado
132 '''
133
134 modelo= gtk.ListStore(str, str)
135 modelo.append(['Domingo', '1'])
136 modelo.append(['Segunda-Feira', '2'])
137 modelo.append(['Terça-Feira', '3'])
138 modelo.append(['Quarta-Feira', '4'])
139 modelo.append(['Quinta-Feira', '5'])
140 modelo.append(['Sexta-Feira', '6'])
141 modelo.append(['Sábado', '7'])
142 combo.set_model(modelo)
143 combo_entry_autocompletar(combo)
Exemplo de uso
1 No momento sem exemplo.
Agradecimento
Agradeço ao amigo Antonio Prado pela ajuda em algumas rotinas.
Volta para CookBook.
Guedes, Maurilio <billguedes.python at terra.com.br>