有一段時間我以爲我無法將Qt C++類與qml應用程序一起使用,但我發現這是:http://doc.qt.io/qt-5/qtqml-cppintegration-definetypes.html。如何從qt C++類創建一個qml對象
現在我試圖創建一個可實例化的對象類型。我第一次遇到「Qwidget:無法創建沒有QApplication的Qwidget」在線閱讀,答案似乎只是將QGuiApplication更改爲QApplication,但後來我得到:「ASSERT:」 !d-> isWidget「
This是,我想作爲一個QML類型使用Qt的類:http://doc.qt.io/qt-5/qlcdnumber.html
這裏是我的main.cpp:
#include <QApplication>
#include <QQmlApplicationEngine>
#include <QLCDNumber>
#include <QQuickStyle>
int main(int argc, char *argv[])
{
QApplication app(argc, argv);
QQmlApplicationEngine engine;
qmlRegisterType<QLCDNumber>("LCDNumber",1,0,"LCDNumber");
engine.load(QUrl(QStringLiteral("qrc:/main.qml")));
if (engine.rootObjects().isEmpty())
return -1;
return app.exec();
}
這裏是我想在main.qml創建:
...
import LCDNumber 1.0
Window {
...
LCDNumber{
digitCount: 3
intValue: 1
mode: LCDNumber.Dec
segmentStyle: LCDNumber.Flat
smallDecimalPoint: false
value: 0
}
}
真的可以在qml中創建一個qt C++類嗎?我錯過了什麼?
http://doc.qt.io/qt-5/qtqml-tutorials-extending-qml-example.html – AlexanderVX
你在混合'Qt'和'QtWidget'和'QtQuick2'。 'QtWidget'和'QtQuick2'都是'Qt'的一部分(Qt'只有這兩個)。僅僅因爲你不能將'QtWidget'集成到'QtQuick'並不意味着你不能集成'Qt'中的任何東西。很多 - 例如許多模型 - 很容易集成到qml中。 – derM