Какова цель свойства GtkWidget.events для (как) виджетов GtkTreeView? - PullRequest
0 голосов
/ 15 сентября 2008

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

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

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

Ответы [ 3 ]

1 голос
/ 28 ноября 2008

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

0 голосов
/ 15 сентября 2008

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

0 голосов
/ 15 сентября 2008

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

...