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

Revisão 1e 2005-08-19 20:33:27

Excluir mensagem

PyGtkComboBoxEntry

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>