我有一个PyQt应用程序,它有"关于"窗口,我显示了作者的姓名,联系方式和申请版本。
我不想在每次发布新版本时都非常关心更改这个数字,所以现在我使用以下方法
我有一个命令行python脚本 compile.py ,它需要版本号并使用pyinstaller编译为exe
python compile.py 1.0.1
然后此脚本更改json文件中的版本 - data.json
{version: 1.0.1;}
然后,当执行"关于"对话框,从 data.json
这是我的临时解决方案,我觉得它不太理想。是否有任何"最佳实践"处理这种情况?
当然,我可以为此目的存储变量,并在每次发布新版本时更改它,但它比我的解决方案更糟糕。
答案 0 :(得分:1)
问题是,您必须至少输入一次某处的新版本字符串,无论是作为命令行参数还是作为文件中的行 - 所以为什么不作为变量在你的申请中?
Qt实际上提供了用于执行此操作的API,因此您可以在PyQt应用程序的开头提供类似的内容:
QApplication.setApplicationName('MyApp')
QApplication.setApplicationVersion('1.0.1')
由于这些函数是静态的,因此可以从应用程序内的任何位置访问这些值(甚至在创建QApplication
对象本身之前,这对于命令行输出,日志记录等都很方便。)
此外,我将版本字符串视为应用程序的一部分,因此对它的任何更改都应包含在版本控制历史记录中(通常作为新版本发布之前的最终提交的一部分)。