pyqt qtablewidget铺满表格并按比例显示宽度
时间: 2023-08-21 22:02:02 浏览: 250
用qt利用tablewidget等控件
要使QTableWidget的列宽度按比例显示并铺满整个表格,可以使用QHeaderView的setSectionResizeMode方法来设置列的调整模式。以下是一个示例代码:
```python
from PyQt5.QtWidgets import QApplication, QTableWidget, QTableWidgetItem, QHeaderView
from PyQt5.QtCore import Qt
app = QApplication([])
table = QTableWidget(3, 4)
table.setHorizontalHeaderLabels(['Column 1', 'Column 2', 'Column 3', 'Column 4'])
data = [
['1', '2', '3', '4'],
['5', '6', '7', '8'],
['9', '10', '11', '12']
]
for row in range(len(data)):
for col in range(len(data[row])):
item = QTableWidgetItem(data[row][col])
table.setItem(row, col, item)
header = table.horizontalHeader()
header.setSectionResizeMode(QHeaderView.Stretch) # 设置列的调整模式为Stretch,按比例分配宽度
header.setSectionResizeMode(0, QHeaderView.ResizeToContents) # 设置第一列的调整模式为ResizeToContents,根据内容调整宽度
table.show()
app.exec_()
```
在上述代码中,我们首先创建一个QTableWidget,并设置了3行4列的表格,并设置了水平表头。然后,我们添加了一些数据到表格中。接下来,我们获取了表格的水平表头,并使用setSectionResizeMode方法将列的调整模式设置为Stretch,这样列宽度会按比例分配。同时,我们还使用setSectionResizeMode方法将第一列的调整模式设置为ResizeToContents,这样第一列的宽度会根据内容自动调整。
运行代码后,你会看到表格的列宽度按比例显示并铺满整个表格。
阅读全文