Какова цель свойства GtkWidget.events для (например) виджетов GtkTreeView?

У меня есть файл описания Glade GUI с GtkTreeView в GtkHBox в окне; и есть обработчик сигнала row_activated. Теперь Glade автоматически установил для свойства "события" (унаследованного от GtkWidget) этого древовидного представления некоторое значение (GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK). И с этим есть две странные вещи:

  • удаление предварительно установленного значения (чтобы свойство было пустым), похоже, не нарушает работу приложения (по крайней мере, не со старым GTK 2.10, у меня есть банкомат).
  • Фактически, досадная ошибка, которую я видел раньше (когда элементы древовидного представления не реагировали бы правильно на щелчки развертывания или свертывания), теперь исчезла!

Мне еще предстоит протестировать это с более новой версией GTK, но вопрос уже существует: какова цель этого свойства events? И почему Glade автоматически и без надобности устанавливает для него какое-то значение? Есть ли у этого какие-то побочные эффекты, о которых я не знаю?


person Community    schedule 15.09.2008    source источник


Ответы (3)


Это ошибка в glade, она всегда устанавливает свойство события создаваемых виджетов. Он не имеет понятия о значении свойства по умолчанию, поэтому всегда устанавливает его.

person Johan Dahlin    schedule 28.11.2008

Разве эта маска не указывает на события, которые вы хотите получить? В этом случае вы, вероятно, захотите получать уведомление о том, что пользователь щелкнул или дважды щелкнул элемент в GtkTreeView, и вы захотите зарегистрировать обратные вызовы для обработки этих событий.

person user7458    schedule 15.09.2008

me.yahoo.com/a/kUQ7zeQ: но даже если я установил для свойства пустую строку, как упомянуто, обработчик row_activated по-прежнему вызывается, когда я дважды щелкаю строку (или нажимаю Enter или Пробел). Таким образом, древовидное представление по-прежнему получает события ...

person Community    schedule 15.09.2008