这取决于您希望如何使用您的 GUI。如果您想将 QML 用于几乎所有事情,从窗口创建到窗口中的元素,以下解决方案可能是您的最佳选择。
Qt5.1,仅适用于桌面
如果您有 Qt5.1,您可以使用 QtQuick.Controls 中的新ApplicationWindow项作为名为 main.qml 的文件中的根对象:
import QtQuick 2.0
import QtQuick.Controls 1.0
ApplicationWindow {
visible: true
width: 360
height: 360
title: "MyWindow"
Text {
text: "Hello world!"
anchors.centerIn: parent
}
}
为避免您收到错误消息,您需要使用QQmlApplicationEngine而不是QQuickView来启动您的应用程序。这可以在您的main.cpp文件中按如下方式完成:
#include <QtGui/QGuiApplication>
#include <QQmlApplicationEngine>
int main(int argc, char *argv[])
{
QGuiApplication app(argc, argv);
QQmlApplicationEngine engine("main.qml");
return app.exec();
}
Qt5.0,(可能)用于桌面以外的环境
如果您不适合使用 Qt5.1,或者您的目标设备尚不支持 QtQuick.Controls,则另一种方法是按以下方式使用Window。将此添加到main.qml:
import QtQuick 2.0
import QtQuick.Window 2.0
Window {
visible: true
width: 360
height: 360
title: "MyWindow"
Text {
text: "Hello world!"
anchors.centerIn: parent
}
}
让它成为你的main.cpp:
#include <QtGui/QGuiApplication>
#include <QQmlEngine>
#include <QQmlComponent>
int main(int argc, char *argv[])
{
QGuiApplication app(argc, argv);
QQmlEngine engine;
QQmlComponent component(&engine, QUrl::fromLocalFile("main.qml"));
component.create();
return app.exec();
}
这应该会打开一个带有文本“Hello World!”的窗口。