【问题标题】:QML opens GUI window and consoleQML 打开 GUI 窗口和控制台
【发布时间】:2012-06-07 01:30:24
【问题描述】:

我正在尝试获得一个有效的 QML 应用程序。一切都很好,除了当我运行我的应用程序时,它会打开 QML 窗口以及控制台窗口。为什么?这是代码:

int main(int argc, char *argv[])
{
    QApplication app(argc, argv);
    QDeclarativeView view;

    view.setSource(QUrl::fromLocalFile("myfile.qml"));
    view.show();

    return app.exec();
}

Rectangle {
    width: 940
    height: 670
    color: red
}

【问题讨论】:

  • 什么平台,什么构建环境
  • 抱歉,Windows 7 上的 Visual Studio 2010,我正在从调试环境运行应用程序
  • 检查属性->链接器->系统,subsystem:console也会创建一个输出控制台,susbsystem:windows不会
  • 你真是个天才!将您的解决方案放在答案中,我会接受!谢谢

标签: c++ user-interface qt4 console declarative


【解决方案1】:

对于 CMake 用户。

MSVC 和 MinGW 为 Windows 构建时遇到的问题。 (即使不是从 IDE 启动。)

解决方案是 CMakeLists 中的以下几行:

if (WIN32)
    set(WIN32_ON_OFF_SWITCH "WIN32")
else ()
    set(WIN32_ON_OFF_SWITCH "")
endif ()

add_executable(SomeExe
    ${WIN32_ON_OFF_SWITCH}
    #...
)

这正是将目标系统设置为远离控制台,就像对问题的评论中提到的那样。

【讨论】:

    【解决方案2】:

    控制台用于使用 QDebug() 进行调试;

    你可以通过删除行来禁用它:

    CONFIG += console
    

    在您的 .pro 文件中。

    【讨论】:

      【解决方案3】:

      为 qbs 设置属性
      consoleApplication: false
      为您的应用程序。 例如:

          Application {
          // consoleApplication: false // permanently disable the console for the application
          Properties {
              condition: qbs.buildVariant == "debug"
              consoleApplication: true //show console
          }
      
          Properties {
              condition: qbs.buildVariant == "release"
              consoleApplication: false //hide console
          }
      }
      

      【讨论】:

        猜你喜欢
        • 2013-06-30
        • 2014-04-20
        • 2010-12-26
        • 2017-02-26
        • 2013-06-01
        • 1970-01-01
        • 1970-01-01
        • 2013-03-18
        • 2012-06-22
        相关资源
        最近更新 更多