在Qt4.8中处理鼠标滚轮事件
Processing mouse wheel events in Qt4.8
在Qt5中,可以在QML中这样做。
MouseArea {
onWheel: {
if (wheel.modifiers & Qt.ControlModifier) {
adjustZoom(wheel.angleDelta.y / 120);
}
}
}
如何在Qt4.8中实现相同的功能?
看起来我在重新发明自行车,但现在它是这样工作的。
我有一个新的QWidget捕获wheelEvent并发送一个新的信号。
void WheelEventCarrier::wheelEvent(QWheelEvent *event)
{
emit sendWheelEvent(event->delta()/120);
}
我在QML中定义了一个新的信号并对其进行处理,同上。
signal wheelEvent(int delta)
onWheelEvent:
{
if(delta > 0)
tag_meas_mod.zoomIn(true);
else
tag_meas_mod.zoomOut(true);
}
我把我的小部件包裹在我所有的UI上,并连接两个信号。
WheelEventCarrier carrier;
UI.setParent(&carrier);
QObject::connect(&carrier,
SIGNAL(sendWheelEvent(int)),
viewer.rootObject(),
SIGNAL(wheelEvent(int)));
carrier.show();
希望你能给我一个更好的解决办法。
相关文章:
- 跟踪滚动条上的鼠标事件
- 如何通过拖动鼠标QT检查按钮?鼠标移动事件
- 我在QChartView中找不到缩放图形的鼠标滚轮滚动事件
- Qt应用程序不响应鼠标和键盘事件
- Qt将鼠标移动事件转移到新窗口
- Qt-如何在Qt3DWindow上获取鼠标事件
- Qt:如何防止为平板电脑事件生成鼠标事件
- 如何使用 c++ mfc 在屏幕上获取鼠标事件
- WM_PAINT和鼠标事件.MFC/WIN32 API.
- 如何解决:自定义QGraphics项目接收鼠标新闻事件坐标延迟/滞后?
- 覆盖Qt的鼠标按下事件中断移动事件参数
- Qt 如何使用鼠标移动事件移动视图
- 触发鼠标按下事件,但不触发鼠标移动事件
- 通过鼠标事件传递数据
- 鼠标区域窃取QQuickItem的鼠标事件
- 跟踪鼠标输入事件
- Windows Console API鼠标事件只是进入选择模式
- 无法跟踪鼠标事件 OpenCV
- Qt. 忽略小部件中的任何鼠标事件,而不是另一个小部件
- WXWIDGETS将鼠标事件连接到WXPAINTDC上的形状对象以删除