Стандартные настройки GTK + RadioButton - Как работать с Ugly Hack? - PullRequest
3 голосов
/ 01 декабря 2011

У меня есть группа GTK + (3) RadioButtons.Я не думаю, что версия GTK здесь имеет значение.

Когда в моем приложении переключается RadioButton, выполняется действие, и графический интерфейс обновляется соответствующей информацией.Все это обрабатывается в подключенном обратном вызове для «переключенного» сигнала.Никаких проблем.

Только не переключаемые переключатели RadioButtons вызовут событие «переключено».Имеет смысл.

Следовательно, возникает проблема - при запуске приложения RadioButton по умолчанию в группе не будет вызывать событие «переключено», потому что оно уже переключено.

Как я могувызвать это начальное действие на RadioButton по умолчанию?

В настоящее время я использую некрасивый хак - То есть добавить невидимое RadioButton, сделать его активным и затем любой из моих реальных RadioButtonмогут быть действительными значениями по умолчанию, которые запускают «переключаемый» сигнал.

Ответы [ 2 ]

2 голосов
/ 01 декабря 2011

Следующее заставит кнопку испустить сигнал toggled:

button.toggled()

Это работает, потому что метод toggled уже определен. Однако, если бы это было не так, вы все равно могли бы использовать метод emit, чтобы заставить любой виджет испускать любой из их сигналов:

button.emit('toggled')
1 голос
/ 01 декабря 2011

Я не уверен, подходит ли это вам, но вы также можете использовать button.get_group() и button.get_active() вместо просмотра события toggled.

# python shell
button1 = gtk.RadioButton(None, "radio button1")
button2 = gtk.RadioButton(button1, "radio button2")
button3 = gtk.RadioButton(button1, "radio button3")

for b in button3.get_group():
    print b.is_active()

Это должно работать для проверки начального состояния.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...