要将 QTabWidget
作为容器,并获取点击选项卡的事件,可以按照以下步骤进行操作:
from PyQt5.QtWidgets import QApplication, QMainWindow, QTabWidget, QWidget, QVBoxLayout
from PyQt5.QtCore import Qt
class MainWindow(QMainWindow):
def __init__(self):
super().__init__()
self.setWindowTitle("TabWidget 示例")
self.setGeometry(100, 100, 400, 300)
# 创建 QTabWidget
self.tab_widget = QTabWidget()
self.setCentralWidget(self.tab_widget)
# 创建两个标签页
self.tab1 = QWidget()
self.tab2 = QWidget()
# 向 QTabWidget 添加标签页
self.tab_widget.addTab(self.tab1, "标签页1")
self.tab_widget.addTab(self.tab2, "标签页2")
# 将标签页的布局设置为 QVBoxLayout
self.tab1.layout = QVBoxLayout()
self.tab2.layout = QVBoxLayout()
# 向标签页中添加控件
self.label1 = QLabel("这是标签页1")
self.label2 = QLabel("这是标签页2")
self.tab1.layout.addWidget(self.label1)
self.tab2.layout.addWidget(self.label2)
# 设置标签页的布局
self.tab1.setLayout(self.tab1.layout)
self.tab2.setLayout(self.tab2.layout)
# 连接标签页切换的信号和槽函数
self.tab_widget.currentChanged.connect(self.tab_changed)
def tab_changed(self, index):
# 获取当前选中的标签页索引
current_tab_index = self.tab_widget.currentIndex()
print("当前选中的标签页索引:", current_tab_index)
if __name__ == '__main__':
app = QApplication(sys.argv)
window = MainWindow()
window.show()
sys.exit(app.exec_())
运行上述代码后,将会显示一个带有两个选项卡的窗口。每次点击选项卡时,tab_changed
方法都会打印当前选中的标签页索引。
你可以根据需要在标签页中添加其他控件或自定义布局。此示例中使用的是垂直布局 (QVBoxLayout
),你可以根据需要选择其他布局方式。