如何在Qt中为Windows设置我的应用程序版本?

7
当我的应用程序崩溃时,Windows事件查看器总是报告我的应用程序版本为“0.0.0.0”。 Windows Event Viewer version 我无法弄清如何以使Windows事件查看器识别的方式设置应用程序版本。使用QApplication::setApplicationVersion()更改它似乎行不通。
显然,有比Windows崩溃日志更好的调试程序的方法,但在缺少所有这些方法的情况下,我该如何设置此值以使Windows识别它?我的IDE是Qt Creator。
3个回答

9
你可以在pro文件中设置VERSION qmake变量:

VERSION = 1.0.0.0

在Windows上,如果未设置RC_FILE和RES_FILE变量,则会触发自动生成.rc文件。生成的.rc文件将填充FILEVERSION和PRODUCTVERSION条目,包括主版本号、次版本号、修订号和构建号。


1
这是完全正确的。然而,当按照此处的指示设置应用程序图标时,它不起作用,因为那会覆盖由 VERSION 创建的 rc 文件。有没有一种方法可以将这两个 RC 文件合并?RC_FILE += 似乎没有预期的效果。 - Phlucious
2
@Phlucious 在Qt 5中有一个方便的RC_ICONSqmake变量,但我不确定它是否在Qt 4中可用。如果不是,您可以手动将两个RC文件的内容合并为一个,并使用RC_FILE引用它。 - kefir500
非常好。谢谢!即使是QWidget应用程序,迁移到Qt5的需求变得越来越明显。 - Phlucious
对我来说,使用RC_FILE变量是因为VERSION不会覆盖RC_FILE,而是RC_FILE导致VERSION无法工作。我可以确认,使用RC_ICONS代替RC_FILE对我解决了所有问题。 - savolai ᯓ

3
如果您正在开发小部件应用程序或 QML,可能希望在 WindowTitle 中显示您的版本。
完整的解决方案如下:
.pro 文件中添加:
VERSION = 1.2.3
DEFINES += APP_VERSION=\\\"$$VERSION\\\"

QWidgetQMainWindow 中:

setWindowTitle("Qt " +qtVersion + " Version"+ APP_VERSION);

或者在QML中:

ApplicationWindow {
    title: "Qt " +qtVersion + " Version"+ APP_VERSION
...

enter image description here


2
使用 QCoreApplication 类。
QCoreApplication::setApplicationVersion("1.0");

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接