2

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 キーを押すまでズームしません。右ボタンが全く効きません。

適切なイベント提供を行うには?

4

1 に答える 1