首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Qt QQmlApplicationEngine拒绝显示qml代码

Qt QQmlApplicationEngine拒绝显示qml代码
EN

Stack Overflow用户
提问于 2014-07-05 09:28:48
回答 3查看 3.8K关注 0票数 6

我有这个专业档案

代码语言:javascript
复制
QT += qml quick widgets
TARGET = sPassKeeper
include(src/src.pri)
include(qml/qml.pri)
RESOURCES += \
    resources.qrc

在src pri和qml.pri中,只有单行qml.pri。

代码语言:javascript
复制
OTHER_FILES += \
    qml/main.qml

src.pri

代码语言:javascript
复制
SOURCES += \
    src/main.cpp

在main.cpp中得到了以下代码

代码语言:javascript
复制
#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

代码语言:javascript
复制
import QtQuick 2.0
import QtQuick.Controls 1.1

ApplicationWindow{
    title: "sPassKeeper"
    Button{
        text: "Hello"
    }
}

结果得到了这个输出

启用了QML调试。只在安全的环境中使用。好的引擎创建

没有显示任何内容,进程也未完成。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2014-07-05 10:57:08

你错过了这个:

代码语言:javascript
复制
ApplicationWindow {
    visible: true

Qt的新项目向导(New File or Project... > Qt Quick Application)有一个选择组件集(Select Qt Quick Component Set)的步骤。如果您选择QtQuick控件(使用ApplicationWindow所必需的),Creator将为您生成正确的代码:

代码语言:javascript
复制
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
    }
}
票数 9
EN

Stack Overflow用户

发布于 2014-07-05 09:43:21

您需要从引擎创建的对象创建QQuickWindow。这是我关于这个项目的一个代码的和平

代码语言:javascript
复制
  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();
票数 2
EN

Stack Overflow用户

发布于 2017-07-04 07:18:28

如果您希望在万事屏模式下显示根对象(WindowApplicationWindow),则可以执行以下操作:

代码语言:javascript
复制
import QtQuick.Window 2.3
import QtQuick.Controls 2.2

ApplicationWindow {
    visible: true
    visibility: Window.FullScreen
}

visibility的可能有用值是:Window.FullScreenWindow.Windowed

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/24584970

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档