pyqt show window again when same process execute

58 views Asked by At

what i want is 1.program run on system tray 2.user forgot program is already running 3.user run the program 4.showing up the program from tray already running, not new process

I already tried check that if same process running in first process, if detected, show up window and kill the second process. but i think it's not best solution

How can I do this?

class SystemTrayIcon(QSystemTrayIcon):
    def __init__(self, parent):
        QSystemTrayIcon.__init__(self, QIcon(icon_image_path + 'tray_icon5.png'))
        self.parent = parent
        menu = QMenu()
        menu.setStyleSheet('''
            font-size: 12px;
            width: 120px;
        ''')
        
        show_action = menu.addAction("open")
        show_action.triggered.connect(self.show_window)
        self.activated.connect(self.Activation_Reason)
        
        setting_action = menu.addAction("settings")
        setting_action.triggered.connect(self.show_setting)
        
        menu.addSeparator()
        
        exit_action = menu.addAction(exit"")
        exit_action.triggered.connect(self.exit_window)
        self.setContextMenu(menu)
        
    def Activation_Reason(self, index):
        if index == 2 :
            self.show_window()
            
    def show_window(self):
        self.parent.window().show()
    
    def exit_window(self):
        self.hide()
        QCoreApplication.instance().quit()
        
    def show_setting(self):
        tab_click_connector = TabClickConnector.get_instance()
        tab_click_connector.emit(3)
        self.show_window()
0

There are 0 answers