You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

PyQt5中去除QTableWidget冗余空白问题求助

嘿,我来帮你搞定QTableWidget里的冗余空白问题!根据你的代码和描述,我整理了几个实用的解决办法,你可以根据自己的需求选:

解决方案

1. 让列/行自适应内容大小

如果空白是因为列宽/行高和内容不匹配导致的,直接调用这两个方法就能让控件自动调整到合适的尺寸,去掉多余空白:

修改你的代码,在初始化表格后加上这两行:

self.tableWidget.resizeColumnsToContents()  # 列自适应内容宽度
self.tableWidget.resizeRowsToContents()    # 行自适应内容高度

完整修改后的代码:

self.tableWidget = QtWidgets.QTableWidget(self.centralwidget)
self.tableWidget.setGeometry(QtCore.QRect(10, 10, 500, 351))
self.tableWidget.setRowCount(5)
self.tableWidget.setColumnCount(3)
self.tableWidget.setHorizontalHeaderLabels(["name", "pass", "Id" ])
self.tableWidget.setObjectName("tableWidget")

# 新增自适应代码
self.tableWidget.resizeColumnsToContents()
self.tableWidget.resizeRowsToContents()

2. 让列占满整个表格宽度

如果希望表格的列完全填充整个控件宽度,没有右侧空白,可以设置表头的拉伸模式:

# 设置所有列自动拉伸,填满表格宽度
self.tableWidget.horizontalHeader().setSectionResizeMode(QtWidgets.QHeaderView.Stretch)

# 如果只想让某一列拉伸,其他列自适应,可单独设置:
# self.tableWidget.horizontalHeader().setSectionResizeMode(0, QtWidgets.QHeaderView.ResizeToContents)
# self.tableWidget.horizontalHeader().setSectionResizeMode(1, QtWidgets.QHeaderView.Stretch)
# self.tableWidget.horizontalHeader().setSectionResizeMode(2, QtWidgets.QHeaderView.ResizeToContents)

3. 移除底部多余空白行

如果你的表格底部有空白行(因为你固定设置了setRowCount(5)但实际数据不足5行),可以根据实际数据的行数动态设置rowCount,而不是固定值:
比如你实际有3条数据,就设置self.tableWidget.setRowCount(3),这样底部就不会有多余的空白行啦。

内容的提问来源于stack exchange,提问作者Adel

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.22 09:38:04