2016-05-14 11 views

Antwort

10

Die Table/Tree/List Widgets sind Element-basiert. Die Tabellen-/Baum-/Listenansichten basieren auf View/Model (manchmal auch als MVC für Model/View/Controller bezeichnet). Im Model/View-System werden die Daten im Modell festgelegt und bearbeitet, und die Ansicht zeigt sie nur an. Um ein View-Widget zu verwenden, müssen Sie auch eine Modellklasse erstellen. In vielen Fällen werden Personen ihre eigene und Unterklasse von QAbstractItemModel erstellen, aber Sie müssen nicht. Qt bietet ein nicht abstraktes Modell, das Sie mit allen Ansichtsklassen verwenden können - QStandardItemModel.

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

Es gibt einige Möglichkeiten, wie Sie die Ausrichtung vornehmen können. Ausrichtung Daten tatsächlich in dem Modell unterstützt, aber der Kopfansicht können Sie festlegen, einen Standard (Ich vermute, es verwendet, dass, wenn die Ausrichtungsdaten im Modell nicht gesetzt) ​​

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

noch mehr Kontrolle zu bekommen , können Sie die Ausrichtungsdaten direkt auf dem Modell festlegen.

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

Aber die Macht des View/Model Systems ist, dass die Ansicht, dass die Daten aus dem Modell angezeigt werden können wählen jeden wie es will. Wenn Sie Ihre eigene benutzerdefinierte Ansicht erstellen möchten, können Sie absolute Kontrolle darüber haben, wie der Text in jeder Spalte ausgerichtet und angezeigt wird.

+0

Vielen Dank – Ruchit

+2

Ruchit ist es in Ordnung, in Kommentaren zu danken, aber das schönste Dankeschön bei Stack Overflow ist der upvote, und die Antwort zu akzeptieren, wenn (und nur wenn) es gerechtfertigt ist: http://StackOverflow.com/Hilfe/jemand-Antworten – neuronet