请帮我写一个python的pyside tabwidget表格自适应代码
时间: 2023-05-18 19:03:07 浏览: 312
pyqt pyside 随窗口自适应、可缩放、拖动QLabel
当TabWidget中的内容改变时,TabWidget的大小也会自动调整。以下是一个示例代码:
```python
from PySide2.QtWidgets import QApplication, QTabWidget, QWidget, QVBoxLayout, QTableWidget, QTableWidgetItem
from PySide2.QtCore import Qt
class TabWidget(QTabWidget):
def __init__(self, parent=None):
super().__init__(parent)
self.tab1 = QWidget()
self.tab2 = QWidget()
self.addTab(self.tab1, "Tab 1")
self.addTab(self.tab2, "Tab 2")
self.tab1.layout = QVBoxLayout(self.tab1)
self.tab2.layout = QVBoxLayout(self.tab2)
self.table1 = QTableWidget()
self.table2 = QTableWidget()
self.tab1.layout.addWidget(self.table1)
self.tab2.layout.addWidget(self.table2)
self.table1.setRowCount(4)
self.table1.setColumnCount(2)
self.table2.setRowCount(3)
self.table2.setColumnCount(3)
self.table1.setItem(0, 0, QTableWidgetItem("1"))
self.table1.setItem(0, 1, QTableWidgetItem("2"))
self.table1.setItem(1, 0, QTableWidgetItem("3"))
self.table1.setItem(1, 1, QTableWidgetItem("4"))
self.table1.setItem(2, 0, QTableWidgetItem("5"))
self.table1.setItem(2, 1, QTableWidgetItem("6"))
self.table1.setItem(3, 0, QTableWidgetItem("7"))
self.table1.setItem(3, 1, QTableWidgetItem("8"))
self.table2.setItem(0, 0, QTableWidgetItem("1"))
self.table2.setItem(0, 1, QTableWidgetItem("2"))
self.table2.setItem(0, 2, QTableWidgetItem("3"))
self.table2.setItem(1, 0, QTableWidgetItem("4"))
self.table2.setItem(1, 1, QTableWidgetItem("5"))
self.table2.setItem(1, 2, QTableWidgetItem("6"))
self.table2.setItem(2, 0, QTableWidgetItem("7"))
self.table2.setItem(2, 1, QTableWidgetItem("8"))
self.table2.setItem(2, 2, QTableWidgetItem("9"))
self.currentChanged.connect(self.adjustSize)
def adjustSize(self):
self.setMinimumSize(self.currentWidget().sizeHint())
if __name__ == '__main__':
app = QApplication([])
tabWidget = TabWidget()
tabWidget.show()
app.exec_()
```
这个示例代码中,我们创建了一个TabWidget,其中包含两个选项卡,每个选项卡中都有一个QTableWidget。我们使用currentChanged信号来调整TabWidget的大小,以适应当前选项卡中的内容。
阅读全文