簡體   English   中英

如何在QML(Qt Quick 2.0)中集成QWidget

[英]How to integrate QWidget in QML (Qt Quick 2.0)

我關閉了返回QFrame的庫。 我程序的GUI是使用QML(Qt Quick 2.0)開發的。 我需要將QFrame(QWidget)集成到QML的解決方案

注意:我找到了示例:Qt_DIR / Examples / Qt-5.3 / declarative / cppextensions / qwidgets,它們可以根據需要執行某些操作。 在該示例中,將QWidged添加到QGraphicsProxyWidget中。 我這樣寫代碼,但是當我運行應用程序時,它將在控制台中顯示:“無法將QtQuick 1.0項目(MyPushButton)添加到QtQuick 2.0場景中!”。 這是這段代碼:

class MyPushButton : public QGraphicsProxyWidget
{
    Q_OBJECT
    Q_PROPERTY(QString text READ text WRITE setText NOTIFY textChanged)

public:
    MyPushButton(QGraphicsItem* parent = 0)
        : QGraphicsProxyWidget(parent)
    {
        widget = new QPushButton("MyPushButton");
        widget->setAttribute(Qt::WA_NoSystemBackground);
        setWidget(widget);

        QObject::connect(widget, SIGNAL(clicked(bool)), this, SIGNAL(clicked(bool)));
    }

    QString text() const
    {
        return widget->text();
    }

    void setText(const QString& text)
    {
        if (text != widget->text()) {
            widget->setText(text);
            emit textChanged();
        }
    }

Q_SIGNALS:
    void clicked(bool);
    void textChanged();

private:
    QPushButton *widget;
};


private:
    QPushButton *widget;
};

QGraphicsProxyWidget旨在與QtQuick 1一起使用。已經有了答案Qt5。 在QML中嵌入QWidget對象

另一個想法-您可以將QWidget嵌入QQuickItem中。 或研究QtQUickControls如何使用QtQuick2進行繪制

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM