我在 QML 项目 (Qt 4.8) 中使用了 QwtPlot (Qwt 6.0.1) 。我通过 QDeclarativeItem 包装它
GraphWidgetQML::GraphWidgetQML(QDeclarativeItem *parent):QDeclarativeItem(parent)
{
_GraphArea = new GraphWidget; //child of QwtPlot without event handlers overrides
QGraphicsProxyWidget *_wiget = new QGraphicsProxyWidget(this);
_wiget->setWidget(_GraphArea);
_wiget->setFlag(QGraphicsItem::ItemIsFocusable,true);
this->setClip(true);
}
并通过代码插入 QML
qmlRegisterType<GraphWidgetQML> ("GraphWidget",1,0,"GraphWidget"); //registration type
和 QML
GraphWidget {
id: drawer
objectName: "drawer"
anchors.top: parent.top
anchors.bottom: parent.bottom
anchors.left: parent.left
anchors.right: parent.right
//
anchors.topMargin: 5
anchors.bottomMargin: 5
anchors.leftMargin: 5
anchors.rightMargin: 5
}
但是,鼠标事件将无法正常工作。例如,当我想绘制一个缩放矩形时,当我释放鼠标按钮时,它不会缩放,直到按下回车键。右键根本不起作用。
如何进行适当的活动提供?