动态设置PyQt应用程序的版本

时间:2016-02-15 22:17:02

标签: python json pyqt4

我有一个PyQt应用程序,它有"关于"窗口,我显示了作者的姓名,联系方式和申请版本。

我不想在每次发布新版本时都非常关心更改这个数字,所以现在我使用以下方法

  1. 我有一个命令行python脚本 compile.py ,它需要版本号并使用pyinstaller编译为exe

    python compile.py 1.0.1

  2. 然后此脚本更改json文件中的版本 - data.json

    {version: 1.0.1;}

  3. 然后,当执行"关于"对话框,从 data.json

  4. 中检索版本号

    这是我的临时解决方案,我觉得它不太理想。是否有任何"最佳实践"处理这种情况?

    当然,我可以为此目的存储变量,并在每次发布新版本时更改它,但它比我的解决方案更糟糕。

1 个答案:

答案 0 :(得分:1)

问题是,您必须至少输入一次某处的新版本字符串,无论是作为命令行参数还是作为文件中的行 - 所以为什么不作为变量在你的申请中?

Qt实际上提供了用于执行此操作的API,因此您可以在PyQt应用程序的开头提供类似的内容:

QApplication.setApplicationName('MyApp')
QApplication.setApplicationVersion('1.0.1')

由于这些函数是静态的,因此可以从应用程序内的任何位置访问这些值(甚至在创建QApplication对象本身之前,这对于命令行输出,日志记录等都很方便。)

此外,我将版本字符串视为应用程序的一部分,因此对它的任何更改都应包含在版本控制历史记录中(通常作为新版本发布之前的最终提交的一部分)。