Использование GTKInspector для имитации сенсорного экрана в GTK + - PullRequest
0 голосов
/ 08 октября 2019

Сейчас я занимаюсь разработкой приложения GTK + в Python3. В части приложения мне нужен длинный сигнал нажатия, и по этой причине я использовал класс Gtk.GestureLongPress, как показано ниже:

longPress = Gtk.GestureLongPress.new(widget)
longPress.connect("pressed", longPressFunction)
longPress.connect("cancelled", normalPressFuntion)

наконец, после запуска приложения, я хотел бы проверить функциональность. однако у меня нет сенсорного устройства для тестирования сенсорного действия, и поэтому я использую GtkInspector. В GtkInspector я включил симуляцию сенсорного экрана, как показано ниже, но пока никаких действий не происходит. какие-либо предложения? Что я сделал не так или что я должен сделать, чтобы это сработало? введите описание изображения здесь

1 Ответ

1 голос
/ 08 октября 2019

Вероятно, это просто проблема управления памятью. Если объект longPress выходит из области видимости, он будет уничтожен, поскольку виджет не имеет ссылки на него. Таким образом, вы можете сделать longPress членом класса, чтобы предотвратить выход longPress из области видимости:

self.buttonLongPress = Gtk.GestureLongPress.new(self.button)
self.buttonLongPress.connect("pressed", longPressFunction)
self.buttonLongPress.connect("cancelled", normalPressFuntion)

Примечание. Сенсорный экран можно имитировать, только если вы используете:

self.buttonLongPress.set_touch_only(True)
...