2013-03-27 3 views
0

QTreeView를 사용하여 개체 속성을 시각화합니다. Qt 디자이너의 속성 편집기와 같은 것입니다. 모든 종류의 값, bool, 텍스트, 색상 값, enum, float, int, 파일 이름 등을 가지고 있습니다.QTextEdit 및 QPushButton 하나의 QAbstractModelItem

저는 모든 객체 값을 보유하고 coustom 대리인을 통해 표시하기위한 coustom 모델을 사용합니다. 따라서 대리인은 데이터의 종류를 감지하고 편집을위한 특별한 표현을가집니다. int/float의 스핀 상자 및 bool의 체크 상자 내 대리인은 예를 들어 스핀 박스 용 편집기를 만들고 값을 확인란으로 나타내려면 paint() 함수를 재정의합니다.

이제 사용자가 두 가지 방법으로 값을 편집 할 수있게하려고합니다. 사용자는 편집, 복사/붙여 넣기 등의 작업을 위해 일반 텍스트 필드를 사용하여 값을 변경하거나 버튼을 눌러 QFileDialog를 열고 올바른 파일을 선택해야합니다.
그것은이 그림과 같아야합니다

image http://oi48.tinypic.com/wldvub.jpg

내가 어떻게 이것을 달성 할 수 있습니까?
QFileDialog를 열기 위해 텍스트 필드와 버튼이 필요합니다.

Qt 5.0을 사용합니다.

QFrame *frame = new QFrame(); 
frame->setLayout(new QHBoxLayout()); 
frame->layout()->addWidget(new QLineEdit()); 
frame->layout()->addWidget(new QToolButton()); 
return frame; 

또는 사용자 정의 위젯을 만들 수 있습니다 도움

에 대한 들으
+0

편집 상태에서 텍스트 필드와 버튼을 표시하거나 표시 및 편집하기를 원하십니까? – cmannett85

+0

가장 좋은 경우 모두 표시 및 편집. – norca

답변

0

사용자 정의 위젯을 사용해야 할 것입니다, 당신은이 라인을 따라 대리인의 createEditor() 기능/뭔가에 다음과 같은 코드를 만들 수 있습니다 디자이너와 함께 그 중 하나를 반환합니다.

+0

나는 이미 그런 것을 상상했다. 그럼 내가 이것을 구현하고 stardelegate expample을 고수하려고합니다. 전에 QFrame을 몰라서이 클래스를 살펴 봅니다. – norca