#ifndef _H_QSIGNLEAPPLICATION_H_ #define _H_QSIGNLEAPPLICATION_H_ #include #include class QMainWindow; class QLocalServer; class SingleApplication : public QApplication { Q_OBJECT public: SingleApplication(int &args, char **argv, QString strServerName); bool getInstanceRunning() const; // 是否已经有实例在运行 QMainWindow *getMainWindow() const; void setMainWindow(QMainWindow *value); private slots: void newLocalConnection(); private: void initLocalConnection(); // 初始化本地连接 void newLocalServer(); // 创建服务端 bool instanceRunning{ false }; // 是否已经有实例在运行 QLocalServer *localServer{ nullptr }; // 本地socket Server(用于本地进程间通信) QString m_serverName; // 服务名称 QMainWindow *mainWindow{ nullptr }; // MainWindow指针 }; /* Example: int main(int argc, char *argv[]){ SingleApplication a(argc, argv, "lp_report"); if (!a.getInstanceRunning()) { slpsf_mark_report w; a.setMainWindow(&w); w.show(); return a.exec(); } return 0; } */ #endif