我正在尝试在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类,我宁愿避免定义我自己的模型类。有什么建议吗?
答案 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);
尝试再次检查您的代码。