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
相关产品推荐
相关产品推荐

