import sys
from PyQt5.QtCore import *
from PyQt5.QtGui import *
from PyQt5.QtWidgets import *
#注意父级是QTabWidget
class demoQTabWidget(QTabWidget):
def __init__(self):
super(demoQTabWidget, self).__init__()
self.tab1 = QWidget()
self.tab2 = QWidget()
self.tab3 = QWidget()
#这里的Tab 1其实已经给tab命名了,也会在tab标签上显示,不知道为什么下面为什么还专门用setTabText()重命名
self.addTab(self.tab1, "Tab 1")
self.addTab(self.tab2, "Tab 2")
self.addTab(self.tab3, "Tab 3")
self.tab1UI()
self.tab2UI()
self.tab3UI()
self.resize(500, 100)
self.setWindowTitle("0504QTabWidget")
def tab1UI(self):
layout = QFormLayout()
layout.addRow("Name:", QLineEdit())
layout.addRow("Address: ", QLineEdit())
#
self.setTabText(0, "Contect")
self.tab1.setLayout(layout)
def tab2UI(self):
layout = QFormLayout()
sexLayout = QHBoxLayout()
sexLayout.addWidget(QRadioButton("Male"))
sexLayout.addWidget(QRadioButton("Female"))
layout.addRow(sexLayout)
layout.addRow("Birthday: ", QLineEdit())
self.setTabText(1, "Personal Information")
self.tab2.setLayout(layout)
def tab3UI(self):
layout = QHBoxLayout()
layout.addWidget(QLabel("Subject: "))
layout.addWidget(QCheckBox("Physics"))
layout.addWidget(QCheckBox("Advanced Mathematics"))
self.setTabText(2, "Education")
self.tab3.setLayout(layout)
if __name__ == '__main__':
app = QApplication(sys.argv)
win = demoQTabWidget()
win.show()
sys.exit(app.exec_())