python pyqt5 tabwidget 定义一个界面并重复加入到tabwidget中,每一个界面都进行不同的内容输入(比如)。现在删除其中一个标签页,如何将它恢复?因为所有的界面都是一样的,调用对象名不能区分出来,还有其他打开的方法吗?
我通常是把删除的对象存储起来,在需要进行恢复的时候调回来。
题主的(比如)我没有看见,如果输入的内容是固定的,可以通过我的方法写一个数组记录删除的对象及内容。
qt的tablewidget的界面同样可以通过objectname来彼此进行区分,不存在界面一样的一说。
同样,如果界面的内容过多,建议直接写个类,通过变量去进行生成,删除时的存储也可以通过此变量存储。
# 选项卡控件:QTabWidget
import sys
from PyQt5.QtCore import *
from PyQt5.QtGui import *
from PyQt5.QtWidgets import *
class TabWidgetDemo(QTabWidget):
def __init__(self, parent=None):
super(TabWidgetDemo, self).__init__(parent)
self.setWindowTitle("选项卡控件:QTabWidget")
# 创建用于显示控件的窗口
self.tab1 = QWidget()
self.tab2 = QWidget()
self.tab3 = QWidget()
self.resize(300,00)
# 将三个窗口与三个选项卡绑定
self.addTab(self.tab1,'选项卡1') # 第一个参数是窗口对象,第二个参数是选项卡的名称
self.addTab(self.tab2,'选项卡2')
self.addTab(self.tab3,'选项卡3')
self.tab1UI()
self.tab2UI()
self.tab3UI()
def tab1UI(self):
layout = QFormLayout() # 创建表单控件
layout.addRow('姓名',QLineEdit())
layout.addRow('地址',QLineEdit())
self.setTabText(0,'联系方式') # 设置选项卡的标题
self.tab1.setLayout(layout) # 将表单控件进行装载
def tab2UI(self):
layout = QFormLayout()
sex = QHBoxLayout()
sex_QRadio=QRadioButton('男')
sex_QRadio.setChecked(True) # 设置复选框默认选中状态
sex.addWidget(sex_QRadio)
sex.addWidget(QRadioButton('女'))
layout.addRow(QLabel('性别'),sex)
layout.addRow('生日',QLineEdit())
self.setTabText(1,'个人详细信息') # 设置选项卡的标题
self.tab2.setLayout(layout)
def tab3UI(self):
layout = QHBoxLayout()
layout.addWidget(QLabel('科目'))
layout.addWidget(QCheckBox('物理'))
layout.addWidget(QCheckBox('高数'))
self.setTabText(2,'教育程度')
self.tab3.setLayout(layout)
if __name__ == '__main__':
app = QApplication(sys.argv)
demo = TabWidgetDemo()
demo.show()
sys.exit(app.exec_())
显示效果如下所示: