1

我正在尝试在 a 中显示一个简单的列表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 类提供它,我宁愿避免定义我自己的模型类。有什么建议么?

4

1 回答 1

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);

尝试再次检查您的代码。

于 2013-03-30T05:14:02.923 回答