当我使用Qt Creater 5来调试QML时,它不起作用。但它使用qmlscene运行良好

时间:2017-04-27 09:01:07

标签: qt qml

我的代码没有错误。

  

启动D:\ qtworkspace \ test \ cnm \ build-cnm-Desktop_Qt_5_8_0_MinGW_32bit-Debug \ debug \ cnm.exe ...
  启用QML调试。只能在安全的环境中使用它。

它没有退出代码0。

的main.cpp

#include <QApplication>
#include <QQmlApplicationEngine>
#include <QQmlContext>
#include <QDebug>
#include <QIcon>

int main(int argc, char *argv[])
{
    QGuiApplication app(argc, argv);
    //app.setWindowIcon(QIcon(":/icons/LOGO.ico"));
    QQmlApplicationEngine engine;
    engine.load(QUrl(QStringLiteral("qrc:/main.qml")));
    return app.exec();
}

main.qml

import QtQuick 2.5
import QtQuick.Window 2.1
import QtQuick.Controls 1.2
import QtQuick.Controls.Styles 1.3
import QtQuick.Layouts 1.2
import QtQuick.Dialogs 1.2

ApplicationWindow {
    id:clientWindow
    width: 1820
    height: 980
    x: (Screen.width - width) / 2
    y: (Screen.height - height) / 2
    //flags: Qt.FramelessWindowHint
    //       | Qt.WindowSystemMenuHint
    //       | Qt.WindowMinimizeButtonHint
    //       | Qt.Window
}

1 个答案:

答案 0 :(得分:0)

你的问题很小但很常见,因为问题在文档中有点隐藏。

您的程序确实有效,并且ApplicationWindow已创建。您可以通过将Component.onCompleted: console.log('created')添加到ApplicationWindow

来检查此问题

问题在于visibility的{​​{1}}。这由visibility: Window.VisiblityEnum控制。默认情况下,此属性设置为Window,表示0 这会设置Window.Hidden。因此 - 在创建时,visible: false未显示。

您还可以使用Window - 属性控制Window的可见性。将其设置为visible等于设置false,如果之前未设置任何其他内容,则将其设置为visibility: Window.Hidden等于true

visibility: Qt.AutomaticVisiblity正在使用不同的默认值。

结论,你可以使用这段代码:

qmlscene

ApplicationWindow {
    id:clientWindow
    width: 1820
    height: 980
    x: (Screen.width - width) / 2
    y: (Screen.height - height) / 2
    //flags: Qt.FramelessWindowHint
    //       | Qt.WindowSystemMenuHint
    //       | Qt.WindowMinimizeButtonHint
    //       | Qt.Window
    visibility: Window.AutomaticVisibility
}