pyqt5点击按钮改变tablewidget布局
时间: 2024-09-29 12:10:28 浏览: 50
PyQt5点击按钮弹出自定义窗口 创建新窗口
5星 · 资源好评率100%
在PyQt5中,你可以通过监听按钮的点击事件来动态地改变TableWidget(表格视图)的布局。首先,你需要创建一个Button,然后设置其信号连接到槽函数,该函数会更新TableWidget的内容、列宽或者行高。这里有一个基本的例子:
```python
import sys
from PyQt5.QtWidgets import QApplication, QMainWindow, QPushButton, QWidget, QVBoxLayout, QTableWidget, QTableWidgetItem
class MainWindow(QMainWindow):
def __init__(self):
super().__init__()
self.table_widget = QTableWidget()
self.table_widget.setColumnCount(3) # 设置表头列数
self.table_widget.setRowCount(5) # 设置行数
layout = QVBoxLayout()
layout.addWidget(self.table_widget)
widget = QWidget()
widget.setLayout(layout)
self.setCentralWidget(widget)
button = QPushButton("切换布局", self)
button.clicked.connect(self.change_layout)
button.move(10, 10)
def change_layout(self):
"""点击按钮时触发的槽函数"""
if isinstance(self.table_widget.layout(), QVBoxLayout): # 判断当前布局类型
self.table_widget.setLayout(QHBoxLayout()) # 改为水平布局
print("切换为水平布局")
else:
self.table_widget.setLayout(QVBoxLayout()) # 回到垂直布局
print("切换回垂直布局")
if __name__ == "__main__":
app = QApplication(sys.argv)
mainWin = MainWindow()
mainWin.show()
sys.exit(app.exec_())
```
在这个例子中,当你点击“切换布局”按钮,如果TableWidget当前使用的是垂直布局(默认),则改为水平布局;反之亦然。
阅读全文