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
}
ただし、マウス イベントは正しく機能しません。たとえば、ズームする四角形を描画したい場合、マウス ボタンを離すと、Enter キーを押すまでズームしません。右ボタンが全く効きません。
適切なイベント提供を行うには?