Mam zamkniętą bibliotekę, która zwraca QFrame. GUI mojego programu opracowano za pomocą QML (Qt Quick 2.0). muszę rozwiązanie zintegrować QFrame (QWidget) do QMLJak zintegrować QWidget w QML (Qt Quick 2.0)
Uwaga: znalazłem przykład: Qt_DIR/examples/Qt 5.3/deklaratywnych/cppextensions/qwidgets, że coś zrobić jak trzeba. W tym przykładzie QWidged jest dodatkiem do QGraphicsProxyWidget. Piszę mój kod w ten sposób, ale kiedy uruchomię swoją aplikację, pokaże mi się w konsoli: "Nie mogę dodać elementu QtQuick 1.0 (MyPushButton) do sceny QtQuick 2.0!". Jest to kod:
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;
};
Udostępniaj kod, w przeciwnym razie wszystkie odpowiedzi są zgadywankami. Pokazuje to również, co zrobiłeś do tej pory i na jakie odpowiedzi może polegać/opierać się. Dla twojego opisu błędu, i * guess * masz import QtQuick 2.0 w nagłówku pliku sceny i QtQuick 1.0/1.1 w nagłówku pliku formularza. Spróbuj "przenieść" swój formularz do QtQuick 2.0 –
Możliwy duplikat [Qt5. Osadź obiekt QWidget w QML] (http://stackoverflow.com/questions/13014415/qt5-embed-qwidget-object-in-qml) –