在 QTabWidget 中添加布局可以通过以下步骤实现:
- 创建一个 QWidget 作为要放入 QTabWidget 的 layout 的容器。
- 创建一个 QVBoxLayout 或 QHBoxLayout,将 QWidget 作为其父对象,并添加需要的控件和布局到这个 layout 中。
- 将 QWidget 添加到 QTabWidget 中。
示例代码:
import sys
from PyQt5.QtWidgets import QApplication, QTabWidget, QWidget, QVBoxLayout, QLabel, QLineEdit, QPushButton
class MyTabWidget(QTabWidget):
def __init__(self):
super().__init__()
self.initUI()
def initUI(self):
# 创建两个 QWidget 作为 Tab Widget 的页面
widget1 = QWidget()
widget2 = QWidget()
# 分别创建两个 QVBoxLayout 布局,并向其中添加控件
vbox1 = QVBoxLayout(widget1)
vbox1.addWidget(QLabel('Page 1'))
vbox1.addWidget(QLineEdit())
vbox1.addWidget(QPushButton('Button 1'))
vbox2 = QVBoxLayout(widget2)
vbox2.addWidget(QLabel('Page 2'))
vbox2.addWidget(QLineEdit())
vbox2.addWidget(QPushButton('Button 2'))
# 将两个 QWidget 添加到 Tab Widget 中
self.addTab(widget1, 'Page 1')
self.addTab(widget2, 'Page 2')
if __name__ == '__main__':
app = QApplication(sys.argv)
tab_widget = MyTabWidget()
tab_widget.show()
sys.exit(app.exec_())
运行后会显示一个带有两个 Tab 的界面,每个 Tab 中包含一个 Label、一个 LineEdit 和一个 Button。