2016-05-14 100 views

回答

10

表/树/列表构件是基于项目的。表/树/列表视图是基于视图/模型(有时称为MV​​C,用于模型/视图/控制器)。在Model/View系统中,数据在模型上进行设置和操作,视图只显示它。要使用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) 

但查看/型号系统的强大之处在于视图可以选择从模型它想要的任何方式显示的数据。如果你想创建自己的自定义视图,你可以绝对控制每列中文本的排列方式和显示方式。

+0

非常感谢 – Ruchit

+2

Ruchit可以在评论中感谢你,但最好的感谢你在堆栈溢出是upvote,并接受答案如果(并且只有)它是有保证的:http://stackoverflow.com /帮助/人,答案 – neuronet