| 45 | messageReceived = pyqtSignal(str) |
| 46 | |
| 47 | def __init__(self, *args, **kwargs): |
| 48 | super(QSingleApplication, self).__init__(*args, **kwargs) |
| 49 | appid = QApplication.applicationFilePath().lower().split("/")[-1] |
| 50 | self._socketName = "qtsingleapp-" + appid |
| 51 | print("socketName", self._socketName) |
| 52 | self._activationWindow = None |
| 53 | self._activateOnMessage = False |
| 54 | self._socketServer = None |
| 55 | self._socketIn = None |
| 56 | self._socketOut = None |
| 57 | self._running = False |
| 58 | |
| 59 | # 先尝试连接 |
| 60 | self._socketOut = QLocalSocket(self) |
| 61 | self._socketOut.connectToServer(self._socketName) |
| 62 | self._socketOut.error.connect(self.handleError) |
| 63 | self._running = self._socketOut.waitForConnected() |
| 64 | |
| 65 | if not self._running: # 程序未运行 |
| 66 | self._socketOut.close() |
| 67 | del self._socketOut |
| 68 | self._socketServer = QLocalServer(self) |
| 69 | self._socketServer.listen(self._socketName) |
| 70 | self._socketServer.newConnection.connect(self._onNewConnection) |
| 71 | self.aboutToQuit.connect(self.removeServer) |
| 72 | |
| 73 | def handleError(self, message): |
| 74 | print("handleError message: ", message) |