QNativeGesture是否在Linux / Windows上工作,如果硬件支持它



我想在应用程序中添加基于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);
  }
};

相关内容

  • 没有找到相关文章

最新更新