吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 872|回复: 2
收起左侧

[学习记录] 在PyQt6中,使 QTableWidget 的列自动适应内容宽度

[复制链接]
js20184 发表于 2023-12-25 16:32
在PyQt6中,要使 QTableWidget 的列自动适应内容宽度,可以使用 QHeaderView 的 setSectionResizeMode 方法。这个方法可以设置表头(header)的尺寸调整模式,其中 QHeaderView.Stretch 和 QHeaderView.ResizeToContents 是两种常用的模式。
  • QHeaderView.Stretch:将所有列的宽度调整为填满整个 QTableWidget 的宽度。
  • QHeaderView.ResizeToContents:根据内容自动调整每列的宽度。
以下是一个简单的示例,展示如何设置 QTableWidget 以自动适应内容宽度:
[Python] 纯文本查看 复制代码
from PyQt6.QtWidgets import QApplication, QTableWidget, QTableWidgetItem, QHeaderView

app = QApplication([])
table = QTableWidget(5, 3)  # 5行3列的表格

# 填充数据
for i in range(5):
    for j in range(3):
        item = QTableWidgetItem(f"Item {i}-{j}")
        table.setItem(i, j, item)

# 设置列宽自适应内容
header = table.horizontalHeader()
header.setSectionResizeMode(QHeaderView.ResizeMode.ResizeToContents)

table.show()
app.exec()
在这个示例中,创建了一个5行3列的 QTableWidget,并使用 setSectionResizeMode 方法设置了水平表头的尺寸调整模式为 ResizeToContents,这意味着列宽会根据内容自动调整。如果想要让某些列使用不同的尺寸调整模式,可以针对那些特定的列单独调用 setSectionResizeMode 方法。例如,如果您想要第一列根据内容调整宽度,而其他列平均分配剩余空间,可以这样设置:
[Python] 纯文本查看 复制代码
header.setSectionResizeMode(0, QHeaderView.ResizeMode.ResizeToContents)  # 第一列根据内容调整宽度
for i in range(1, table.columnCount()):
    header.setSectionResizeMode(i, QHeaderView.ResizeMode.Stretch)  # 其他列平均分配宽度

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

FruitBaby 发表于 2023-12-25 18:53
按照楼主的步骤试试
shojnhv 发表于 2023-12-25 20:48
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-11-24 15:53

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表