Как связать события нажатия кнопки GTK3 с обратными вызовами
Итак, я разрабатываю свое первое приложение на GTK3, и я не знаю, как связать мои кнопки с их соответствующими определениями. Кто-нибудь может опубликовать учебник, пример или несколько документов?
Используя следующие вещи для разработки моего приложения:
- Ubuntu 12.04 LTS полностью обновлена
- Python 2.7.3
- Очевидно, GTK+ 3
- Поляна 3.12.1
Приложение, которое я разрабатываю, - Virtuam (кандидат на App Showdown!)
1 ответ
Посмотрите на этот пример, как связать события с обратными вызовами в Gtk 3 и Python. Короче говоря, вы используете connect() метод для подключения имени сигнала (которое выдается, когда происходит событие, такое как нажатие кнопки) к обратному вызову, который является функцией, которая будет обрабатывать ваше событие.
def __init__(self):
# Other initialization code
# We create a button
self.button = Gtk.Button(label="Click Here")
# We connect the 'clicked' signal to the callback
self.button.connect("clicked", self.on_button_clicked)
def on_button_clicked(self, widget):
# This function will be called whenever the user presses the button
print "Hello World"
Вы также можете посмотреть видеоролик о вводной мастерской Gtk3, который является частью шоу Ubuntu App Showdown.
Если вы используете Glade, вам необходимо убедиться, что on_<name-of-your-button>_clicked() обратный вызов определяется в коде как метод вашего окна.
Если вы используете Quickly, это все, что вам нужно беспокоиться.
В противном случае вам нужно будет вручную подключить сигнал к обратному вызову. У вас есть два варианта:
- Сделайте это в коде с
self.builder.get_object('name-of-your-button').connect()- при условииbuilderэто имя твоегоGtk.Builder()в котором вы загрузили свой Glade UI. - Сделайте это с Glade, просматривая свойства вашей кнопки, выбирая вкладку сигналов и затем записывая название вашего обратного вызова в сигнале "нажал".