在Qt5中,这可以在QML中完成,如下所示。
MouseArea {
onWheel: {
if (wheel.modifiers & Qt.ControlModifier) {
adjustZoom(wheel.angleDelta.y / 120);
}
}
}如何在Qt4.8中实现同样的目标?
发布于 2016-09-05 19:23:42
看起来我正在重新发明自行车,但现在它是如何工作的。
我有一个能捕获wheelEvent并发送新信号的新QWidget。
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();希望你能给我一个更好的解决方案。
https://stackoverflow.com/questions/39250495
复制相似问题