2016-05-14 98 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