[英]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.