QTreeView标题显示文本

时间:2013-03-30 03:22:17

标签: python qt treeview pyside

我正在尝试在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 header difficulties,所以我尝试使用类似建议的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类,我宁愿避免定义我自己的模型类。有什么建议吗?

1 个答案:

答案 0 :(得分:2)

很难说你的问题是什么,因为有足够的信息,但下面的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);

尝试再次检查您的代码。