Предоставление событий в QWidget(QWT), встроенный в QML Qt4

Я использовал QwtPlot (Qwt 6.0.1) в проекте QML (Qt 4.8) . я обернуть его через 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
    }

Но мышиные события не будут работать правильно. Например, когда я хочу нарисовать масштабирующий прямоугольник, когда я отпустил кнопку мыши, он не будет масштабироваться, пока не будет нажата клавиша ввода. Правая кнопка не работает вообще.

Как правильно организовать мероприятие?

1 ответ

При исследовании этого вопроса у меня сложилось общее впечатление QDeclarativeItem"s QGraphicsItemнаследуемые события мыши ведут себя не так, как "нормальные" QWidget События. Трудно быть конкретным / уверенным без дальнейшего тестирования, но у меня есть идея (из далекой памяти Qt до QtQuick & QML), что для QWidget события перемещения мыши, вы получите завершающий mouseMoveEvent без buttons() нажата, тогда как в QGraphicsItem единственное уведомление о том, что перемещение мыши закончено, это mouseReleaseEvent,

Казалось бы, объяснить ваше наблюдаемое поведение, если ваш GraphWidget Компонент полагался на mouseMoveEvent со всеми кнопками вверх, но не получая одну... но я понятия не имею, как эта информация может быть использована для устранения проблемы.

Другие вопросы по тегам