Qt禁用触摸屏检测
Qt disable touch screen detection
有没有办法将Qt应用程序配置为不检测触摸屏以保持正常屏幕的行为?
这取决于。如果您的操作系统区分触摸事件和鼠标按下,您可以创建一个 touchEvent 筛选器来忽略事件,如下所示:
#include <QObject>
#include <QTouchEvent> // to get rid of "error: invalid use of incomplete type 'class QEvent'"
class QTouchEventFilter: public QObject
{
Q_OBJECT
public:
QTouchEventFilter(QObject *parent = 0) : QObject(parent)
{
}
protected:
bool eventFilter(QObject * p_obj, QEvent * p_event)
{
if (p_event->type() == QEvent::TouchBegin ||
p_event->type() == QEvent::TouchUpdate ||
p_event->type() == QEvent::TouchEnd ||
p_event->type() == QEvent::TouchCancel)
{
p_event->ignore();
return true;
}
return false;
}
};
然后将其安装在要忽略触摸事件的小部件上:
myWidget->installEventFilter(new QTouchEventFilter);
但是,我的直觉是,在大多数操作系统上,您谈论的"触摸"将作为鼠标按下事件出现,除非您愿意放弃该小部件的所有鼠标输入,否则您将无法过滤掉它们。如果您愿意,请使用相同的概念,但将QEvent替换为与鼠标关联的QEvent。
相关文章:
- 使用CMake检测支持的C++标准
- 当套接字连接断开时检测C/C++Unix
- C/C++预处理器是否可以检测一些编译器选项
- WMI检测进程创建事件-c++
- 基于树莓pi的tensorflow lite量化ssd目标检测
- 下面是我为检测链接列表中的循环而制作的代码
- 落砂模拟碰撞检测C++和SFML
- 我可以检测和更改 gcc/g++ 中结构的当前数据对齐设置吗?
- 为什么C++编译器没有检测到正确声明的类?
- 检测win32服务创建和删除的最佳方法
- 正在LLVM中检测整数比较条件
- 如何在鼠标挂钩过程中检测拖动
- 位移操作和位掩码未检测到重复字符
- 检测 COFF 对象文件中C++内联符号
- qmake:检测目标位宽(32 位或 64 位)
- 增强精神解析器规则以检测语句中的特殊结尾
- 用于C++的静态二进制检测或二进制重写工具和框架
- Tensorflow对象检测在Python和C++(OpenCV)之间有不同的结果
- C++中的张量流对象检测
- Qt禁用触摸屏检测