在 GTK+ 中使用 GTKInspector 模拟触摸屏
Using GTKInspector to simulate touchscreen in GTK+
现在我正在 Python3 中开发一个 GTK+ 应用程序。在部分应用程序中,我需要长按信号,因此我使用了 Gtk.GestureLongPress class 如下:
longPress = Gtk.GestureLongPress.new(widget)
longPress.connect("pressed", longPressFunction)
longPress.connect("cancelled", normalPressFuntion)
终于在 运行 应用程序之后,我想测试功能。但是,我没有任何触摸设备来测试触摸操作,这就是我使用 GtkInspector 的原因。在 GtkInspector 中,我启用了模拟触摸屏,如下所示,但仍然没有任何动作发生。有什么建议么?我做错了什么或者我应该怎么做才能让它发挥作用?
enter image description here
可能这只是一个内存管理问题。如果 longPress 对象超出范围,它将被销毁,因为小部件没有对它的引用。因此,您可以使 longPress 成为 class 成员以防止 longPress 超出范围:
self.buttonLongPress = Gtk.GestureLongPress.new(self.button)
self.buttonLongPress.connect("pressed", longPressFunction)
self.buttonLongPress.connect("cancelled", normalPressFuntion)
注意:只有在使用时才需要模拟触摸屏:[=12=]
self.buttonLongPress.set_touch_only(True)
现在我正在 Python3 中开发一个 GTK+ 应用程序。在部分应用程序中,我需要长按信号,因此我使用了 Gtk.GestureLongPress class 如下:
longPress = Gtk.GestureLongPress.new(widget)
longPress.connect("pressed", longPressFunction)
longPress.connect("cancelled", normalPressFuntion)
终于在 运行 应用程序之后,我想测试功能。但是,我没有任何触摸设备来测试触摸操作,这就是我使用 GtkInspector 的原因。在 GtkInspector 中,我启用了模拟触摸屏,如下所示,但仍然没有任何动作发生。有什么建议么?我做错了什么或者我应该怎么做才能让它发挥作用? enter image description here
可能这只是一个内存管理问题。如果 longPress 对象超出范围,它将被销毁,因为小部件没有对它的引用。因此,您可以使 longPress 成为 class 成员以防止 longPress 超出范围:
self.buttonLongPress = Gtk.GestureLongPress.new(self.button)
self.buttonLongPress.connect("pressed", longPressFunction)
self.buttonLongPress.connect("cancelled", normalPressFuntion)
注意:只有在使用时才需要模拟触摸屏:[=12=]
self.buttonLongPress.set_touch_only(True)