QUICK REFERENCE: RADIOBUTTON

RadioButtons andam sempre em grupos. Só se pode apertar um.

O curioso é que, quando criamos a série de objetos, apenas a partir do segundo referenciamos um grupo, colocando o nome do primeiro.Parece confuso? Veja o exercício.

Dois objetos RadioButtons podem ser criados com, por exemplo:

self.rb1 = gtk.RadioButton(None, "UM DADO TÍTULO")
self.rb2 = gtk.RadioButton(self.rb1, "OUTRO TÍTULO")

Para adicionar cada um desses objetos à tela do XO, numa dada posição, usamos normalmente um objeto Fixed (visto em aula anterior):

Os métodos de RadioButton são:

show()

hide()

destroy()

set_label(label)

Para trocar o título

get_label()

Retorna o título

set_active(bool)

Usamos True ou False para definir se o botãozinho aparece para baixo ou não. O uso desse método dispara um signal toggled - ver abaixo.

Como um botão, ele serve para disparar alguma ação. Como isso é feito? Já falamos isso quando tratamos do Button.

Colocamos a ação numa função que pode se chamar, por exemplo: talfunc. E existe um método que, a partir de algo que se fez com o botãozinho, dispara essa função. Esse "algo que se fez" é chamado de "signal". Os signals válidos são:

E o método é:

connect("signal", self.função, None)

DICA: O terceiro parâmetro desse método pode ser captado na função chamada, como podemos ver no exercício. Isso facilita a programação de botões.

No exercício dessa lição, o usuário tem a opção de selecionar UM (apenas UM) de vários nomes de Clubes. O selecionado aparece num Label. Se apertar outro, o nome é trocado.

Claro que o código a seguir, do exercício, tem que vir dentro de uma Classe etc. etc. como já mostramos.

#...
   def __init__(self):
       Activity.__init__(self)
       #Definindo o tamanho das letras
       gtk.settings_get_default().props.gtk_xft_dpi *= 3
       #Criando base para layout
       self.fix = gtk.Fixed()
       self.add(self.fix)
       self.fix.show()
       #Criando Label
       self.lb = gtk.Label()
       self.fix.put(self.lb, 600,200)
       self.lb.show()
       #Criando RadioButtons
       self.rb1 = gtk.RadioButton("Flamengo")
       self.fix.put(self.rb1, 200,200)
       self.rb1.show()
       self.rb1.connect("toggled",self.apertado, "Flamengo")
       self.rb2 = gtk.RadioButton("Santos")
       self.fix.put(self.rb2, 200,300)
       self.rb2.show()
       self.rb2.connect("toggled",self.apertado, "Santos")
       self.rb3 = gtk.RadioButton("Internacional")
       self.fix.put(self.rb3, 200,400)
       self.rb3.show()
       self.rb3.connect("toggled",self.apertado, "Internacional")  
    
   def apertado(self,widget,data=None):
       self.lb.set_text(data)

Repare que o parâmetro do connect veio como data.


LIÇÂO ANTERIOR PRÓXIMA LIÇÂO
ÍNDICE HOMEPAGE