【问题标题】:Why Qt user interface looks different in Release mode than in Debug mode为什么 Qt 用户界面在发布模式和调试模式下看起来不同
【发布时间】:2019-02-04 13:40:24
【问题描述】:

我想知道为什么我的用户界面在发布模式和调试模式下看起来不同(看起来不太好看)?是否需要在发布目录中添加一些特殊的 dll 或修改项目的 .pro 文件?

调试模式:

https://imgur.com/CZ80a8x.png

发布模式:

https://imgur.com/8f8C71K.png

添加以下必要的 dll 文件后会出现此“发布”用户界面:

platforms/qminimal.dll
platforms/qoffscreen.dll
platforms/qwebgl.dll
platforms/qwindows.dll
Qt5Charts.dll
Qt5Core.dll
Qt5Gui.dll
Qt5SerialPort.dll
Qt5Widgets.dll
STDFU.dll
STDFUFiles.dll
STFFUPRT.dll
STTubeDevice30.dll

我尝试添加 qwindowsvistastyle.dll,但看起来一样。

【问题讨论】:

  • 您是否在样式文件夹中添加了 qwindowsvistastyle.dll DLL? (styles/qwindowsvistastyle.dll)
  • 根据我的经验,发布和调试模式之间的差异是由于未初始化的变量。根据您的配置,未初始化变量的处理方式会因模式而异。因此,请确保您的所有成员(尤其是整数、布尔值、指针)都已初始化。
  • 一般来说建议使用qtwindeploy tool,但这似乎不是问题,它更像是在你的应用程序中设置了扁平的外观和感觉。您使用的是 QML 还是 QtWidgets?
  • 你几乎肯定忘记了一些 dll。也可能发生您忘记样式表文件或以其他方式遇到资源问题。小部件还是 QML?无论如何,如果不是初始化问题,比较 Debug 和 Release 文件夹可能会有所帮助。
  • 只是好奇,您知道您是如何获得第二个视图的吗?它比平面视图漂亮得多。我非常努力地想把它找回来,但它似乎没有用:(

标签: qt user-interface qt5


【解决方案1】:

我已经解决了。

如果在这种情况下 DLL 文件来自较新版本的 Qt 5.11,并且 EXE 是使用旧版本 - 5.9 编译的,则似乎某些 DLL 函数无法从 EXE 中使用,它们被替换为默认的。我已经从我的 Qt 发行版中获取了 DLL 文件,并且一切正常。

【讨论】:

    猜你喜欢
    • 2021-12-11
    • 1970-01-01
    • 2011-06-14
    • 2015-03-25
    • 1970-01-01
    • 1970-01-01
    • 2017-06-16
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多