Пыги как переключить кнопку без функции запуска

Я пишу это приложение, используя быстро.

Я ищу способ переключения кнопки без функции запуска, которая связана с этой кнопкой.

def on_button_text_italic_toggled(self, widget):
    print "Italic"

def on_buttone_test_clicked(self, widget):
    self.button_text_italic.set_active(True)

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

Спасибо за любую помощь!

1
задан 12 April 2013 в 01:24

2 ответа

on_button_text_italic_toggled - это объектный метод, который вызывается при вызове on_buttone_test_clicked, поэтому естественно выполнить указанный код.

Вам придется заменить строку print "Itallic" на pass ключевым словом Python, но в результате on_button_text_italic_toggled ничего не будет делать, поэтому вы можете не захотеть его вызывать.

Вы можете узнать больше о функциях здесь и как определять классы и методы здесь

0
ответ дан 12 April 2013 в 01:24

Если вы хотите, чтобы функция выполнялась большую часть времени, когда подается сигнал переключения, а не когда вы переключаете его вручную (например, при загрузке сохраненных настроек и отображении соответствующего состояния), вам необходимо заблокировать и разблокировать сигнал. , Для этого вам понадобится идентификатор handle_id, который был возвращен при подключении сигнала к функции. Просто назначьте переменную при подключении сигнала. Вот пример:

#!/usr/bin/python
from gi.repository import Gtk

def on_toggle(widget,data=None):
    print "toggled, emitted signal"

def on_button1_clicked(widget, data=None):
    print "manually toggle, no signal"
    toggle.handler_block(handle_id)
    state=toggle.get_active()
    toggle.set_active(not state)
    toggle.handler_unblock(handle_id)


win=Gtk.Window()
win.connect('destroy', Gtk.main_quit)
box=Gtk.Box(orientation=Gtk.Orientation.VERTICAL)
button1=Gtk.Button('Toggle with no signal')
button1.connect('clicked', on_button1_clicked)
button1.show()
box.pack_start(button1,True,True,10)
toggle=Gtk.ToggleButton('Toggle')
handle_id=toggle.connect('toggled', on_toggle)
toggle.show()
box.pack_start(toggle,True,True,0)
box.show_all()
win.add(box)
win.show()
Gtk.main()
0
ответ дан 12 April 2013 в 01:24

Другие вопросы по тегам:

Похожие вопросы: