我想在应用程序中添加基于Qt5的滑动手势。该应用程序主要用于在Linux(笔记本电脑)上运行。我只是不能写代码,因为我不明白如何使用这个类(没有可用的示例代码)。
触摸屏驱动程序支持滑动手势(libinput)。此外,突触(至少在我的系统上)支持多指触摸。
有人可以指导我如何使用API,并提供一些示例代码?
你是说QNativeGestureEvent
吗?您可能不应该使用QNativeGestureEvent
而使用更高级的框架:参见小部件和图形视图中的手势。QNativeGestureEvent
过去只在OS X上可用;它不是一个真正意义上的广泛使用的API。
唉,QNativeGestureEvent
被传递给小部件本身。您可以通过重新实现QObject::event
并对事件采取行动来对它们做出反应:
class MyWidget : public QWidget {
typedef base_type = QWidget;
...
bool QWidget::event(QEvent * ev) override {
if (ev->type() == QEvent::NativeGesture) {
auto g = static_Cast<QNativeGestureEvent*>(ev);
...
return true; // if event was recognized and processed
}
return base_type::event(ev);
}
};