pyqt qtablewidget动态添加数据时设置列表头或者说水平标题

18 篇文章 0 订阅

当动态添加数据时,如果没有设置水平标题的话,会显示1,2,3,。。。,而如果要设置的话,用这个方法:

self.tableWidget.setVerticalHeaderItem(row, QTableWidgetItem('水平标题'))   # 水平标题, row是第几行

要使QTableWidget的列宽度按比例显示并铺满整个表格,并且可以设置每列的宽度比例,可以使用QHeaderView的setSectionResizeMode和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.Interactive) header.resizeSection(0, 3 * table.width() // 10) # 第一列占总宽度的3/10 header.setSectionResizeMode(1, QHeaderView.Interactive) header.resizeSection(1, 2 * table.width() // 10) # 第二列占总宽度的2/10 header.setSectionResizeMode(2, QHeaderView.Interactive) header.resizeSection(2, 4 * table.width() // 10) # 第三列占总宽度的4/10 header.setSectionResizeMode(3, QHeaderView.Interactive) header.resizeSection(3, 1 * table.width() // 10) # 第四列占总宽度的1/10 table.show() app.exec_() ``` 在上述代码中,我们首先创建一个QTableWidget,并设置了3行4列的表格,并设置水平表头。然后,我们添加了一些数据到表格中。接下来,我们获取了表格的水平表头,并使用setSectionResizeMode方法将列的调整模式设置为Stretch,这样列宽度会按比例分配。 然后,我们使用setSectionResizeMode方法将每一列的调整模式设置为Interactive,以便手动调整列宽度。然后,使用resizeSection方法设置每一列的宽度比例,方法是根据总宽度计算所占比例。 请注意,这里使用的分配比例是根据表格总宽度计算的。你可以根据实际需要调整每一列的比例。 运行代码后,你会看到表格的列宽度按比例显示并铺满整个表格,并且每一列的宽度比例也被正确设置
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值