Qt程序单例运行

Qt程序单例运行

可执行文件正常情况下是可以打开多个,多个同时运行,但是有些情况下必须只可以单例运行。 Qt程序单例运行的实现方法:使用qtsingleapplication。

qtsingleapplication位置:

Qtsingleapplication在Qt的安装路径下可以找到。 本地找不到也可以从网上下载: https://www.iteye.com/resource/shaoyiju-11271559 这是我在网上找到的下载链接,需要下载积分,也可自行查找下载链接。

使用方法:

1.将qtsingleapplication源码拷贝到项目源码目录中,然后在项目.Pro文件中添加下面一行代码: Qt程序单例运行

在main.cpp文件中添加头文件: 1#include 在main主函数将 QApplication 替换成QtSingleApplication Main主函数实现方法:

不是单例运行的主函数: int main(int argc, char *argv[]) { QApplication a(argc, argv); MainWindow w; w.show(); return a.exec(); }

单例运行的主函数: int main(int argc, char *argv[]) { //自定义的程序标记,由这个标记去区别实例。如果不指定,则会以qApp->applicationFilePath()做为标记 const QString APP_ID(“name”);

QtSingleApplication a(APP_ID, argc, argv); //如果程序正在运行中发送消息,使正在运行的程序显示 if(a.isRunning()) { a.sendMessage(“raise_window_noop”); return EXIT_SUCCESS; } MainWindow w;

a.setActivationWindow(&w);

//连接消息信号槽 QObject::connect(&a,&QtSingleApplication::messageReceived,&a,&QtSingleApplication::activateWindow);

w.show();

return a.exec(); } 这是最基本的使用,就是用APP_ID标记这个程序,运行时先判断是否已经有实例在运行,如果有则通知程序显示到最前方,没有的话就执行主窗体的初始化和现实,进入事件循环。

免责声明:文章内容来自互联网,本站不对其真实性负责,也不承担任何法律责任,如有侵权等情况,请与本站联系删除。
转载请注明出处:Qt程序单例运行 https://www.yhzz.com.cn/a/14641.html

上一篇 2023-05-12 09:50:57
下一篇 2023-05-12 09:53:31

相关推荐

联系云恒

在线留言: 我要留言
客服热线:400-600-0310
工作时间:周一至周六,08:30-17:30,节假日休息。