一、QEvent
QT事件:比如鼠标进入、鼠标移动、鼠标离开等等。
1. 鼠标进入等:
二、如何捕捉事件?
1. 定义自定义控件
2. 在自定义的My_ui.h中,定义鼠标事件函数。
二、常用鼠标事件
1. 鼠标进入事件
[virtual protected] void QWidget::enterEvent(QEvent *event)
2. 鼠标移出
[virtual protected] void QWidget::leaveEvent(QEvent *event)
3. 鼠标点击
[virtual protected] void QWidget::mousePressEvent(QMouseEvent *event)
4. 鼠标释放
[virtual protected] void QWidget::mouseReleaseEvent(QMouseEvent *event)
5. 鼠标移动
[virtual protected] void QWidget::mouseMoveEvent(QMouseEvent *event)
6. 鼠标双击
virtual void mouseDoubleClickEvent(QMouseEvent *event)
三、在qt中设置事件
1. 在.h文件中声明事件
2. 在对应的.cpp中重写虚函数
3. setMouseTracking(true);
对于鼠标的Move事件,要先摁下鼠标才算移动。可以在.cpp中设置如上监听,不摁着鼠标也能捕获到Move事件。
四、鼠标左键?右键?
1. 先查QT文档
QMouseEvent-->Qt::MouseButton
2. 使用
3. Buttons?
以上适用于点击等瞬间性的事件,持续性的事件不适用,比如Move。持续性的需要用Buttons(),这个包含了鼠标的所有按键。要搭配 位与& 运算使用。
五、QString中的占位符
QString占位符用%1----%n代替,比如:
// 这里的event是事件函数中的参数
QStrint str = QString("当前点的坐标是:(%1 , %2)").arg(event->x()).arg(event->y());
六、如何查看QT文档?
我一般在QWidget中查找,比如鼠标事件,一般在这里可以找到