表格/树/列表小部件是基于项目的。表/树/列表视图是基于视图/模型的(有时称为 MVC,用于模型/视图/控制器)。在模型/视图系统中,数据在模型上设置和操作,视图只是显示它。要使用 View 小部件,您还必须创建一个模型类。在许多情况下,人们会从QAbstractItemModel 创建自己的子类和子类,但您不必这样做。 Qt 提供了一个非抽象模型,您可以在所有视图类中使用 - QStandardItemModel。
model = QStandardItemModel()
model.setHorizontalHeaderLabels(['Name', 'Age', 'Sex', 'Add'])
table = QTableView()
table.setModel(model)
有几种方法可以进行对齐。模型中实际上支持对齐数据,但标题视图允许您设置默认值(我猜如果模型中未设置对齐数据,它会使用它)
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)
但是视图/模型系统的强大之处在于视图可以选择以任何方式显示模型中的数据。如果您想创建自己的自定义视图,您可以完全控制每列中的文本如何对齐和显示。