TOC
Temos visto quase tudo o que há para fazer no botão de controlo. É muito simples. Você pode usar a função
A função para criar um botão é:
O código-fonte do programa buttons.py é:
Linhas 36-70 definir a classe
A função
O Widget Button tem os seguintes sinais:
gtk.Button
() para criar um botão com uma etiqueta, passando um parâmetro de
cadeia, ou um espaço em branco se a cadeia não é especificado. Depois de um depende do pacote de objetos, como um rótulo ou pixmap para este novo botão. Para fazer isso, criar uma nova caixa, e então ela objetos são colocados usando o típico pack_start()
. Finalmente usado add
() para colocar a caixa no botão. A função para criar um botão é:
botão = gtk.Button
( label
= None, stock
= None)
Se esta marca for utilizada como texto especificado estoque botón.Si
ele é usado para selecionar uma série ícone e rótulo para o botão é
especificado. As características padrão são: STOCK_DIALOG_INFO STOCK_DIALOG_WARNING STOCK_DIALOG_ERROR STOCK_DIALOG_QUESTION STOCK_DND STOCK_DND_MULTIPLE STOCK_ADD STOCK_APPLY STOCK_BOLD STOCK_CANCEL STOCK_CDROM STOCK_CLEAR STOCK_CLOSE STOCK_CONVERT STOCK_COPY STOCK_CUT STOCK_DELETE STOCK_EXECUTE STOCK_FIND STOCK_FIND_AND_REPLACE STOCK_FLOPPY STOCK_GOTO_BOTTOM STOCK_GOTO_FIRST STOCK_GOTO_LAST STOCK_GOTO_TOP STOCK_GO_BACK STOCK_GO_DOWN STOCK_GO_FORWARD STOCK_GO_UP STOCK_HELP STOCK_HOME STOCK_INDEX STOCK_ITALIC STOCK_JUMP_TO STOCK_JUSTIFY_CENTER STOCK_JUSTIFY_FILL STOCK_JUSTIFY_LEFT STOCK_JUSTIFY_RIGHT STOCK_MISSING_IMAGE STOCK_NEW STOCK_NO STOCK_OK STOCK_OPEN STOCK_PASTE STOCK_PREFERENCES STOCK_PRINT STOCK_PRINT_PREVIEW STOCK_PROPERTIES STOCK_QUIT STOCK_REDO STOCK_REFRESH STOCK_REMOVE STOCK_REVERT_TO_SAVED STOCK_SAVE STOCK_SAVE_AS STOCK_SELECT_COLOR STOCK_SELECT_FONT STOCK_SORT_ASCENDING STOCK_SORT_DESCENDING STOCK_SPELL_CHECK STOCK_STOP STOCK_STRIKETHROUGH STOCK_UNDELETE STOCK_UNDERLINE STOCK_UNDO STOCK_YES STOCK_ZOOM_100 STOCK_ZOOM_FIT STOCK_ZOOM_IN STOCK_ZOOM_OUTO programa de amostra buttons.py fornece um exemplo da utilização
gtk.Button
() para criar um botão com uma imagem e um rótulo nele. Separou o código para criar uma caixa a partir do resto de modo que pode ser usado na maioria dos programas. Há mais exemplos do uso de imagens mais tarde no tutorial. Figura Figura 6.1, "Botão com Pixmap e Etiqueta" mostra a janela com um botão que inclui uma imagem e um rótulo: O código-fonte do programa buttons.py é:
1 #! / Usr / bin / env python 2 3 # botões exemplo de inicialização buttons.py 4 Pygtk 5 de importação 6 pygtk.require ('2.0') Gtk 7 de importação 8 9 # Criar um novo hbox com uma imagem e um rótulo embalado para ele 10 # e reembolsar o caixa. 11 Xpm_label_box 12 def (pai, xpm_filename, label_text): 13 # Criar caixa XPM e etiqueta 14 box1 = gtk.HBox (gtk.FALSE, 0) Box1.set_border_width 15 (2) 16 17 # Agora chegamos à imagem 18 image = gtk.Image () 19 image.set_from_file (xpm_filename) 20 21 # Criar um rótulo para o botão 22 label = gtk.Label (label_text) 23 24 # Nós empacotamos o pixmap e a etiqueta na caixa 25 box1.pack_start (imagem, gtk.FALSE, gtk.FALSE, 3) 26 box1.pack_start (label, gtk.FALSE, gtk.FALSE, 3) 27 28 image.show () 29 label.show () 30 retorno box1 31 32 classe Crachás: 33 # O nosso método de retorno usual (callback) Callback 34 def (self, widget, data = None): 35 print "Olá de novo -% s foi pressionado"% dados 36 37 def __init __ (self): 38 # Criar uma nova janela 39 self.window = gtk.Window (gtk.WINDOW_TOPLEVEL) 40 41 self.window.set_title ("Image'd botões!") 42 43 # é uma boa idéia fazer isso para todas as janelas 44 self.window.connect ("destruir", lambda wid: Gtk.main_quit ()) 45 self.window.connect ("delete_event" lambda a1, a2: Gtk.main_quit ()) 46 47 # Montamos a largura da borda da janela Self.window.set_border_width 48 (10) 49 50 # Criar um novo botão 51 botão = gtk.Button () 52 53 # Ligue o sinal "clicado" para a nossa callback 54 button.connect ("clicado", self.callback, "button cool") 55 56 # Este chamar a nossa função de criação de caixa 57 box1 = xpm_label_box (self.window ", info.xpm", "botão cool") 58 59 # malas e mostrar todos os controles 60 button.add (box1) 61 62 box1.show () 63 button.show () 64 65 self.window.add (botão) 66 self.window.show () 67 68 def main (): 69 gtk.main () 70 return 0 71 72 se __name__ == "__main__": 73 Botões () 74 main ()As linhas 12-34 definir a função auxiliar
xpm_label_box
() que cria uma caixa horizontal com uma borda de largura 2 (linhas
14-15) e coloca uma imagem (linhas 22-23) e uma etiqueta (linha 26). Linhas 36-70 definir a classe
Buttons
.
Linhas 41-70 definir o método de inicialização de instância que cria
uma janela (linha 43), define o título (linha 45), liga a sinais
"delete_event" e "destruir" (linhas 48-49). A linha 55 cria o botão sem rótulo. Seu sinal "clicado" está ligado ao método callback
() na linha 58. A função xpm_label_box
() é chamado na linha 61 para criar a imagem e etiqueta para colocar no botão na linha 64. A função
xpm_label_box
() poderia ser usado para embalar XPM de rótulos e para qualquer elemento que pode ser um recipiente. O Widget Button tem os seguintes sinais:
Eu pressionei - emitida quando o botão é pressionado ponteiro no controle de botão lançado - emitida quando o botão de ponteiro é liberado dentro de Button widget clicado - emitida quando o botão é pressionado ponteiro e, em seguida, liberado no prazo de Controle Botão entrar - emitido quando ponteiro entra Button widget sair - emitida quando o ponteiro deixa Button widget