gpt4 book ai didi

python - PyQt QTableView 设置水平和垂直标题标签

转载 作者:太空狗 更新时间:2023-10-29 19:33:35 30 4
gpt4 key购买 nike

使用QTableWidget我可以做到

table = QTableWidget()
table.setHorizontalHeaderLabels(QString("Name;Age;Sex;Add").split(";"))
table.horizontalHeaderItem().setTextAlignment(Qt.AlignHCenter)

我怎样才能对 QTableView 做同样的事情??

最佳答案

表格/树/列表小部件是基于项目的。表/树/ ListView 是基于 View /模型的(有时称为 MVC,用于模型/ View / Controller )。在模型/ View 系统中,数据是在模型上设置和操作的, View 只是显示它。要使用 View 小部件,您还必须创建一个模型类。在许多情况下,人们会从 QAbstractItemModel 创建自己的子类。 ,但你不必这样做。 Qt 提供了一个非抽象模型,您可以将其用于所有 View 类 - QStandardItemModel .

model = QStandardItemModel()
model.setHorizontalHeaderLabels(['Name', 'Age', 'Sex', 'Add'])
table = QTableView()
table.setModel(model)

有几种方法可以进行对齐。模型实际上支持对齐数据,但标题 View 允许您设置默认值(我猜如果模型中未设置对齐数据,它会使用它)

header = table.horizontalHeader()
header.setDefaultAlignment(Qt.AlignHCenter)

要获得更多控制,您可以直接在模型上设置对齐数据。

# Sets different alignment data just on the first column
model.setHeaderData(0, Qt.Horizontal, Qt.AlignJustify, Qt.TextAlignmentRole)

但是 View /模型系统的强大之处在于, View 可以选择以任何它想要的方式显示来自模型的数据。如果您想创建自己的自定义 View ,您可以完全控制每列中文本的对齐和显示方式。

关于python - PyQt QTableView 设置水平和垂直标题标签,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37222081/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com