功能:
1.QTabWidget实现每个tab独立弹窗QDialog互相不影响,切换tab时自动切换弹窗
2.QDialog永远在父控件QTabWidget之上,并在弹窗时可操作QTabWidget
3.关闭弹窗时清除打开列表记录,关闭tab时关闭弹窗并清除打开列表记录,关闭tab未在本文中体现,可参考其他文章
效果图:
代码:
import sys
from PyQt5.QtCore import Qt
from PyQt5.QtWidgets import QPushButton, QApplication, QLineEdit, QLabel, QDialog, QTextEdit, QTabWidget, QMainWindow
class MainWindow(QMainWindow):
def __init__(self):
super().__init__()
self.dialogs = {}
self.initUI()
def initUI(self):
# 创建一个 QTabWidget
self.tabWidget = QTabWidget(self)
self.tabWidget.currentChanged.connect(self.tab_changed) # 监听选项卡切换事件
self.tabWidget.tabCloseRequested.connect(self.closeEvent) # 监听选项卡关闭事件
self.setCentr