2009-10-16 6 views
4

나는 천천히 Qt4 GUI 프레임 워크 사용에 익숙해 져있다. 작업중인 프로젝트에서 목록에 Team 개의 개체를 추가/편집/제거 할 수 있어야합니다. C#을 .NET의 관점에서오고, 나는 그런 다음 추가/제거/편집을 할 양식에 버튼을 사용Qtx에서 QListView 또는 유사하게 사용하기

List<Team> teams = new List<Team>(); 
teamsListBox.DataSource = teams; 
teamsListBox.DisplayMember = "Name"; 

같은 것을 할 것입니다.

그러나 내가 알 수있는 바로는 Qt에서이를 쉽게 수행 할 수있는 방법이 없습니다. QListView, QListWidget, QStandardItemModel 등의 문서를 살펴 봤지만 C#에 해당하는 Qt 코드를 얻는 방법을 알 수 없습니다.

내 목표는 Team을 일종의 목록 상자에 표시 한 다음 런타임에 Team을 추가/제거/편집 할 수있게하는 것입니다.

어떻게 하시겠습니까?

답변

3

QAbstractItemModelQStandardItemModel을 보거나 QAbstractItemModel에서 상속 된 팀에 대해 사용자 지정된 TeamItemModel 클래스를 만들어야합니다. 이러한 맞춤 클래스는 항목이 QListView와 같은 위젯에 표시되는 방법을 관리합니다. QStringList

QString 항목, 예를 들어 간단한

:
QStringList list; 
list << "item1" << "item2" << "item3" << "item4" << "item5"; 
ui->listView->setModel(new QStringListModel(list)); 

다음 추가/제거/A Team 당신이 시도보다 쉽게해야 업데이트.

희망이 있습니다.

+0

서브 클래 싱을 피하는 쉬운 방법이 있습니까? 'QList '에서 모델을 생성하는 것과 같은가? –

+0

DirModel, ProxyModel 및 StandardItemModel이 있지만 목록 모델은 없습니다. 귀하의 필요에 따라 QAbstractItemModel을 서브 클래스화해야한다고 생각합니다. –

+1

Patrice, QListView에 대해 하나 이상의 열과 행을 포함하는 QStandardItemModel을 사용하여 샘플 코드를 제공 할 수 있습니까? – Samir

관련 문제