我有这个专业档案
QT += qml quick widgets
TARGET = sPassKeeper
include(src/src.pri)
include(qml/qml.pri)
RESOURCES += \
resources.qrc在src pri和qml.pri中,只有单行qml.pri。
OTHER_FILES += \
qml/main.qmlsrc.pri
SOURCES += \
src/main.cpp在main.cpp中得到了以下代码
#include <QApplication>
#include <QQmlApplicationEngine>
#include <QtDebug>
int main(int argc, char *argv[])
{
QApplication app(argc, argv);
QQmlApplicationEngine engine(QUrl("qrc:/new/prefix1/qml/main.qml"));
qDebug() << "Ok engine created";
// Q_UNUSED(engine)
return app.exec();
}main.qml
import QtQuick 2.0
import QtQuick.Controls 1.1
ApplicationWindow{
title: "sPassKeeper"
Button{
text: "Hello"
}
}结果得到了这个输出
启用了QML调试。只在安全的环境中使用。好的引擎创建
没有显示任何内容,进程也未完成。
发布于 2014-07-05 10:57:08
你错过了这个:
ApplicationWindow {
visible: trueQt的新项目向导(New File or Project... > Qt Quick Application)有一个选择组件集(Select Qt Quick Component Set)的步骤。如果您选择QtQuick控件(使用ApplicationWindow所必需的),Creator将为您生成正确的代码:
import QtQuick 2.2
import QtQuick.Controls 1.1
ApplicationWindow {
visible: true
width: 640
height: 480
title: qsTr("Hello World")
menuBar: MenuBar {
Menu {
title: qsTr("File")
MenuItem {
text: qsTr("Exit")
onTriggered: Qt.quit();
}
}
}
Text {
text: qsTr("Hello World")
anchors.centerIn: parent
}
}发布于 2014-07-05 09:43:21
您需要从引擎创建的对象创建QQuickWindow。这是我关于这个项目的一个代码的和平:
engine.load(QUrl(QString(String_val(_qmlpath))));
QList<QObject*> xs = engine.rootObjects();
if (xs.count() == 0) {
Q_ASSERT_X(false, "Creating C++ runtime", "Your QML file seems buggy");
}
QQuickWindow *window = qobject_cast<QQuickWindow*>(xs.at(0) );
window->showMaximized();
app.exec();发布于 2017-07-04 07:18:28
如果您希望在万事屏模式下显示根对象(Window或ApplicationWindow),则可以执行以下操作:
import QtQuick.Window 2.3
import QtQuick.Controls 2.2
ApplicationWindow {
visible: true
visibility: Window.FullScreen
}visibility的可能有用值是:Window.FullScreen和Window.Windowed。
https://stackoverflow.com/questions/24584970
复制相似问题