2024-06-23 19:27:57 发布
网友
我已经创建了一个pyqt4应用程序,我想让它只允许运行一个(QApplication的)实例。在
pyqt4
该程序读取和写入音频文件,如果多个实例正在运行,Windows(linux很好)会抛出错误,说明两个程序正在尝试访问相同的文件。我看到很多java和C应用程序会显示一个简单的对话框如果程序已经在运行,我只想知道如何在pyqt4中这样做。在
帮点忙吗?在
这种编程模式称为“单例”实例或“单例应用程序”。在
通常通过全局互斥或在程序生命周期的早期锁定文件来完成。 当程序启动时,如果文件句柄已被锁定,则退出。在
Qt解决方案在这里有:http://doc.qt.digia.com/solutions/4/qtsingleapplication/qtsingleapplication.html
https://qt.gitorious.org/qt-solutions/qt-solutions/source/841982ceec9d30a7ab7324979a0fd5c9c36fd121:qtsingleapplication
要让这些全局互斥锁在pyqt中工作可能需要一些工作,因为据我所知,pyqt还没有qt解决方案部分。在
下面是一个使用跨平台python脚本的替代方法:
Python: single instance of program
希望有帮助。在
谢谢。我使用了https://gitorious.org/qsingleapplication/qsingleapplication/source/ca13324b0f5bdfcaf4e379a78108f0bd85fed98a:qSingleApplication.py#L66并在主窗口上调用了qsingLeapApplication,运行良好
这种编程模式称为“单例”实例或“单例应用程序”。在
通常通过全局互斥或在程序生命周期的早期锁定文件来完成。 当程序启动时,如果文件句柄已被锁定,则退出。在
Qt解决方案在这里有:http://doc.qt.digia.com/solutions/4/qtsingleapplication/qtsingleapplication.html
https://qt.gitorious.org/qt-solutions/qt-solutions/source/841982ceec9d30a7ab7324979a0fd5c9c36fd121:qtsingleapplication
要让这些全局互斥锁在pyqt中工作可能需要一些工作,因为据我所知,pyqt还没有qt解决方案部分。在
下面是一个使用跨平台python脚本的替代方法:
Python: single instance of program
希望有帮助。在
谢谢。我使用了https://gitorious.org/qsingleapplication/qsingleapplication/source/ca13324b0f5bdfcaf4e379a78108f0bd85fed98a:qSingleApplication.py#L66并在主窗口上调用了qsingLeapApplication,运行良好
相关问题 更多 >
编程相关推荐