terça-feira, 21 de abril de 2015

Capítulo 6. O Botão

 

6.1. Botões padrão

Temos visto quase tudo o que há para fazer no botão de controlo. É muito simples. Você pode usar a função 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_OUT
O 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:
Figura 6.1. Botão com Pixmap e Etiqueta
Botão com Pixmap e Etiqueta

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

Nenhum comentário:

Postar um comentário