(例如)GtkTreeView小部件的GtkWidget.events属性的目的是什么?

时间:2008-09-15 16:38:43

标签: linux gtk pygtk glade

我在窗口的GtkTreeView中有一个GtkHBox的Glade GUI描述文件;并且有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 个答案:

答案 0 :(得分:1)

这是林间空地的一个错误,它总是设置它创建的小部件的事件属性。它没有属性的默认值的概念,所以它总是设置它。

答案 1 :(得分:0)

这个面具是否表示您愿意接受的事件?在这种情况下,您可能希望收到用户点击或双击GtkTreeView中的项目的通知,并且您将要注册回调来处理这些事件。

答案 2 :(得分:0)

me.yahoo.com/a/kUQ7zeQ:但即使我按照提到的那样将属性设置为空字符串,当我双击一行时仍然会调用row_activated处理程序(或按Enter或空间)。所以树视图仍然会发生事件......