Текст за показване на заглавката на QTreeView

Опитвам се да покажа прост списък в QTreeView и да задам текста за показване на заглавката:

+--------+
| Player |
+--------+
| Alice  |
| Bob    |
+--------+

Въпреки това не мога да накарам заглавката да показва нещо различно от "1":

+--------+
| 1      |
+--------+
| Alice  |
| Bob    |
+--------+

Първо опитах QStringListModel, но това не промени текста на заглавката.

from PySide.QtCore import *
from PySide.QtGui import *

model = QStringListModel()
model.setHeaderData(0, Qt.Horizontal, "Player")
model.setStringList(["Alice", "Bob"])

Открих затруднения със заглавката на QTableView, така че опитах да използвам QStandardItemModel като предложено, но това все пак доведе до заглавка, показваща само „1“:

from PySide.QtCore import *
from PySide.QtGui import *

model = QStandardItemModel()
model.setHeaderData(0, Qt.Horizontal, "Player")
for player in ["Alice", "Bob"]:
    model.appendRow(QStandardItem(player))

Бих предпочел да избегна дефинирането на собствен клас модел, ако вече има клас Qt/PySide по подразбиране, който го предоставя. Някакви предположения?


person All Workers Are Essential    schedule 30.03.2013    source източник


Отговори (1)


Трудно е да се каже какъв е проблемът ви, защото има достатъчно информация, но следният C++ код работи

QStandardItemModel model;
model.setColumnCount (1);
model.setHeaderData (0, Qt::Horizontal, "Player");
QList<QStandardItem*> row;
row << new QStandardItem("Adam");
model.appendRow (row);
QTreeView view;
view.setModel (&model);

Опитайте да проверите кода си отново.

person AnatolyS    schedule 30.03.2013
comment
Благодаря, model.setColumnCount(1) беше това, което ми липсваше преди .setHeaderData(). - person All Workers Are Essential; 30.03.2013