繁体   English   中英

Qt Windows 10 上的应用程序从 Qt Creator 启动时表现不同

[英]Qt app on Windows 10 behaves differently when launched from Qt Creator

我正在尝试在 Windows 10 上构建一个 Qt 应用程序,当我从 Qt Creator IDE 运行它时,以及在它之外运行 exe 时,我得到了不同的外观。

来自 Qt 创作者

外部 Qt 创建者

我想让它始终看起来像在 Qt Creator 中的样子:一个更好看的按钮,没有多余的第二个 window。

复制:在 Qt Creator(一个 Qt Widgets 应用程序)中创建一个新项目,使用 CMake 作为构建系统和桌面 Qt 5.15.0 MSVC2019 64 位套件。 使用设计器将按钮添加到 the.ui 并编译。 为了使应用程序在IDE之外运行,请在DLLS QT5COURE.8dll,QT5GUID.8dll,QT5WIDGETSD.881037284188888888888888888888888888888888888888888881888888108888810888810888810888881081088881088888103.8888888888888888888888888888888888888888888888888888103.88888888888888881088888810881088103

编辑:看起来多余的 window 只有在我使用 CMake 时才会出现,它不会出现在用 qmake 制作的项目中。 但是,我正在向现有项目添加 GUI,因此“使用 qmake”不是解决方案。

Qt 环境的性质是这样的,如果您没有在程序代码中指定,Qt 会从它运行的环境中继承样式。请参阅QApplication-style命令行标志。

Qt Creator 是在 Qt 中编写的,听起来它在您的安装中设置了非默认样式。 当您从 QT Designer 预览表单时,您可以选择该表单的显示样式。

看起来控制台 window 可能是 CMake 项目设置的结果,例如,在没有 WIN32 参数的情况下调用了add_executable https://cmake.org/cmake/help/latest/command/add_executable.html

它也可以由项目中的某些东西创建,例如,如果有一个框架初始化控制台 API。

如 Swift 的回答中所述,控制台 window 问题是由于缺少add_executable的 WIN32 参数引起的。 但是,主题问题是由不同的原因引起的。

通过这个线程,似乎从 Qt 5.14 开始,如果可执行文件的 dll 存储在它旁边并且没有 styles 文件夹,则使用 Windows 主题(看起来像 Windows 95)。 但是,添加 dll 样式/qwindowsvistastyled.dll 可以解决此问题。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM