【发布时间】:2018-04-07 11:51:19
【问题描述】:
有一个QQuickPaintedItem 带有重载的鼠标事件处理程序:
void Plotter::mousePressEvent(QMouseEvent *event)
{
qDebug() << "mousePressEvent";
}
void Plotter::mouseMoveEvent(QMouseEvent* event)
{
qDebug() << "mouseMoveEvent";
}
void Plotter::hoverMoveEvent(QHoverEvent *event)
{
qDebug() << "hoverMoveEvent";
}
我想在 QML 代码中为这个 QQuickPaintedItem 添加一个上下文菜单,所以我必须将 MouseArea 添加到这个元素中:
Plotter {
id: plotter
// ...
Menu {
id: contextMenu
MenuItem { text: "Добавить маркер" }
MenuItem { text: "Удалить маркер" }
MenuItem { text: "Удалить все маркеры" }
MenuItem { text: "Установить шаг" }
}
MouseArea {
anchors.fill: parent
acceptedButtons: Qt.RightButton
propagateComposedEvents: true
onClicked: {
if (!mouseScaleButton.checked) {
contextMenu.popup();
}
else
mouse.accepted = false;
}
}
}
但如果我按下右键,它不会捕捉到 QQuickPaintedItem 的 mousePressEvent。
你能解释一下为什么会这样吗?
【问题讨论】: