2013-03-30 3 views
1

나는 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 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 클래스가 있다면. 어떤 제안?

답변

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

시도를 작동합니다.

+0

감사합니다.'model.setColumnCount (1)'은'.setHeaderData()'이전에 누락되었습니다. – cpburnz