如何根据QTab widget不同选项卡来判断QTab widget里的QTablewidget
时间: 2023-10-05 16:07:31 浏览: 72
您可以使用`currentWidget()`方法来获取当前选中的选项卡,然后根据选项卡的索引或标签来判断对应的`QTableWidget`控件。
以下是一个示例代码:
```python
from PyQt5.QtWidgets import QApplication, QTabWidget, QWidget, QVBoxLayout, QTableWidget, QTableWidgetItem
app = QApplication([])
# 创建主窗口和布局
window = QWidget()
layout = QVBoxLayout(window)
# 创建QTabWidget和两个QTableWidget
tab_widget = QTabWidget()
table1 = QTableWidget()
table2 = QTableWidget()
# 设置选项卡标签
tab_widget.addTab(table1, "选项卡1")
tab_widget.addTab(table2, "选项卡2")
# 设置表格内容
table1.setRowCount(2)
table1.setColumnCount(2)
table1.setItem(0, 0, QTableWidgetItem("行1列1"))
table1.setItem(0, 1, QTableWidgetItem("行1列2"))
table1.setItem(1, 0, QTableWidgetItem("行2列1"))
table1.setItem(1, 1, QTableWidgetItem("行2列2"))
table2.setRowCount(3)
table2.setColumnCount(3)
table2.setItem(0, 0, QTableWidgetItem("行1列1"))
table2.setItem(0, 1, QTableWidgetItem("行1列2"))
table2.setItem(0, 2, QTableWidgetItem("行1列3"))
table2.setItem(1, 0, QTableWidgetItem("行2列1"))
table2.setItem(1, 1, QTableWidgetItem("行2列2"))
table2.setItem(1, 2, QTableWidgetItem("行2列3"))
table2.setItem(2, 0, QTableWidgetItem("行3列1"))
table2.setItem(2, 1, QTableWidgetItem("行3列2"))
table2.setItem(2, 2, QTableWidgetItem("行3列3"))
# 获取当前选中的选项卡
current_tab_index = tab_widget.currentIndex()
current_tab_widget = tab_widget.currentWidget()
# 根据选项卡判断对应的QTableWidget
if current_tab_index == 0:
print("当前选中的是选项卡1")
# 对应的处理逻辑
# current_tab_widget 就是 table1
elif current_tab_index == 1:
print("当前选中的是选项卡2")
# 对应的处理逻辑
# current_tab_widget 就是 table2
layout.addWidget(tab_widget)
window.show()
app.exec()
```
根据实际情况,您可以在判断选项卡后执行相应的处理逻辑,例如更新表格内容、获取选中的行列数据等。
阅读全文