Как связать события нажатия кнопки 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, просматривая свойства вашей кнопки, выбирая вкладку сигналов и затем записывая название вашего обратного вызова в сигнале "нажал".
Другие вопросы по тегам