You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Python中打开QMainWindow应用的一个或多个新实例

实现点击"New"菜单打开PyQt应用新实例

你已经完成了带有"New"和"Quit"菜单项的QMainWindow搭建,且"Quit"功能正常。要实现点击"New"打开应用新实例,可通过启动独立进程的方式实现(避免同一进程内多实例的资源共享问题),修改代码如下:

import sys
import subprocess
from PyQt5.QtWidgets import QMainWindow, QApplication
# 请根据你的实际文件路径调整Ui_MainWindow的导入
from your_ui_module import Ui_MainWindow

class MainApp(QMainWindow, Ui_MainWindow):
    def __init__(self):
        super().__init__()
        self.setupUi(self)
        self.show()

        self.action_Quit.triggered.connect(self.exit_app)
        # 绑定New菜单的触发信号到对应方法
        self.action_New.triggered.connect(self.open_new_instance)

    def exit_app(self):
        self.close()

    def open_new_instance(self):
        # 启动当前脚本的新进程,创建完全独立的应用实例
        subprocess.run([sys.executable, sys.argv[0]])

if __name__ == "__main__":
    app = QApplication(sys.argv)
    MainWindow = MainApp()
    sys.exit(app.exec())

关键说明:

  • 导入subprocess模块用于启动独立进程
  • 为action_New菜单项绑定open_new_instance方法
  • 在open_new_instance方法中,通过sys.executable获取当前Python解释器路径,sys.argv[0]获取当前脚本路径,用subprocess.run启动新进程,确保每个实例完全独立

内容的提问来源于stack exchange,提问作者gabrsafwat

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.21 00:24:19