在 PyQt5
的 QTableWidget
中,每列默认是可以通过拖拽来改变列宽的,但如果这个功能被禁用了,你可以使用 horizontalHeader().setSectionResizeMode()
方法来确保列宽可以通过拖拽调整。
要启用列宽的拖拽调整,可以使用 QHeaderView.Interactive
模式,该模式允许用户手动调整列宽。
from PyQt5.QtWidgets import QApplication, QTableWidget, QTableWidgetItem, QHeaderView
app = QApplication([])
# 创建一个 QTableWidget
table_widget = QTableWidget(3, 3)
# 填充表格
for i in range(3):
for j in range(3):
table_widget.setItem(i, j, QTableWidgetItem(f"Item {i}, {j}"))
# 设置列宽可以通过拖拽调整
table_widget.horizontalHeader().setSectionResizeMode(QHeaderView.Interactive)
# 显示表格
table_widget.show()
app.exec_()
horizontalHeader().setSectionResizeMode(QHeaderView.Interactive)
设置列头的调整模式为Interactive
,使列宽可以通过拖拽进行调整。QHeaderView.Interactive
模式允许用户使用鼠标拖动列头来手动调整列宽。
如果你还希望自动调整列宽以适应内容,可以使用 QHeaderView.ResizeToContents
,不过这会禁止用户拖拽改变列宽。所以,建议仅使用 QHeaderView.Interactive
来达到你想要的效果。