gpt4 book ai didi

c++ - Linux 上的 QTouchEvent 代替 QMouseEvent

转载 作者:行者123 更新时间:2023-12-02 08:01:20 31 4
gpt4 key购买 nike

我正在尝试在 Qt 5.9 中处理来自 M3 触摸屏的 QTouchEvent。我用Qt Finger Print example它在 Windows 7 上工作正常,但在 Ubuntu 16.04 上我收到鼠标事件而不是触摸事件。是 Qt 的错误还是操作系统配置错误?

此外,QTouchDevice::devices().size() 始终等于 0。

最佳答案

我建议您使用EventFilters捕获多个平台中的触摸和鼠标事件。为此,您必须在小部件的构造函数中调用 installEventFilter 并实现 eventFilter 来过滤 QEvent你正在寻找。例如使用这样的东西:

bool ECGPlot::eventFilter(QObject *o, QEvent *ev) {
bool ret = false;

switch (ev->type ()) {
case QEvent::TouchBegin:
ret = true;
break;

case QEvent::TouchUpdate:
ret = true;
break;

case QEvent::TouchEnd:
ret = true;
break;

case QEvent::Wheel:
ret = true;
break;

case QEvent::MouseButtonPress:
ret = true;
break;

case QEvent::MouseButtonRelease:
ret = true;
break;

case QEvent::MouseMove:
ret = true;
break;

}

return ret;
}

关于c++ - Linux 上的 QTouchEvent 代替 QMouseEvent,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46527220/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com