qtablewidget设置手动调整列宽
时间: 2023-07-04 12:03:55 浏览: 175
QTableWidget设置表头筛选(含鼠标点击事件过滤)
5星 · 资源好评率100%
你可以使用QTableWidget的resizeColumnToContents()方法来设置手动调整列宽。该方法将根据列内容自动调整列宽。为了允许用户手动调整列宽,你需要将QTableWidget的horizontalHeader()属性的setSectionResizeMode()方法设置为QHeaderView::Interactive。下面是一个简单的例子:
```python
from PyQt5.QtWidgets import QApplication, QTableWidget, QMainWindow, QTableWidgetItem, QHeaderView
import sys
class MainWindow(QMainWindow):
def __init__(self):
super().__init__()
# 创建一个QTableWidget
self.table = QTableWidget()
# 设置表格大小和行列数
self.table.setColumnCount(3)
self.table.setRowCount(2)
# 设置表格头
self.table.setHorizontalHeaderLabels(['Name', 'Age', 'Gender'])
# 设置表格内容
self.table.setItem(0, 0, QTableWidgetItem('Alice'))
self.table.setItem(0, 1, QTableWidgetItem('25'))
self.table.setItem(0, 2, QTableWidgetItem('Female'))
self.table.setItem(1, 0, QTableWidgetItem('Bob'))
self.table.setItem(1, 1, QTableWidgetItem('30'))
self.table.setItem(1, 2, QTableWidgetItem('Male'))
# 设置表格的列宽自适应
self.table.resizeColumnToContents(0)
self.table.resizeColumnToContents(1)
self.table.resizeColumnToContents(2)
# 允许用户手动调整列宽
self.table.horizontalHeader().setSectionResizeMode(QHeaderView.Interactive)
# 将表格添加到主窗口中
self.setCentralWidget(self.table)
if __name__ == '__main__':
app = QApplication(sys.argv)
window = MainWindow()
window.show()
sys.exit(app.exec_())
```
在上面的例子中,我们首先创建了一个QTableWidget,并设置了表格的大小和行列数。然后,我们设置了表格头和表格内容。接下来,我们使用resizeColumnToContents()方法将表格的列宽自适应。最后,我们将表格的水平表头的setSectionResizeMode()方法设置为QHeaderView::Interactive,允许用户手动调整列宽。最后,我们将表格添加到主窗口中并显示出来。
阅读全文