rogeriojlle
(usa OpenSuSE)
Enviado em 25/10/2010 - 23:56h
pra não estender muito o texto, googlando descobri que vários widgets possuem uma propriedade chamada "state". Se fizer assim:
controle.get_state()
e
controle.state
é retornado o estado desse controle, no primeiro método ele retorna digamos que "por extenso" e na segunda forma um valor numérico.
foi só associar um com o outro.
o que nos interessa são os números:
1 - ACTIVE
2 - PRELIGHT
O estado ACTIVE está setado quando o controle está pré-selecionado quando cria, ou quando se marca a opção usando as setas, enquanto que o PRELIGHT é quando efetivamente se clicou em cima de um radiobutton, antes desativado
-------------------------------------------
def setSexo(self, letraSexo):
.... if self.state == 1 or self.state == 2:
........global sexoSelecionado
........sexoSelecionado = letraSexo
sexo = gtk.RadioButton(None, 'Masculino')
sexo.connect('toggled', setSexo, 'M')
# se ninguém mexer nos radiobutton, 'toggled'
# jamais acontecerá, então:
setSexo(sexo, 'M')
#isso executa a função ao menos uma vez
sexo = gtk.RadioButton(sexo, 'Feminino')
sexo.connect('toggled', setSexo, 'F')
-------------------------------------------
Pronto, agora enviaForm() já tem como saber qual opção está marcada através a variável 'sexoSelecionado'.
em tempo: dá errado se fizer '1 or 2' direto, porque não sei