2014-05-15 1 views
3

위젯을 홍보하는 것은 QT 디자이너에서 가장 좋은 기능 중 하나입니다. 그러나 디자이너를 사용할 때, 새로운 것은 그것 자체 (setupUi 내부)입니다. 이것은 인터페이스 파일을 확장하는 기능을 제한합니다.QT로 프로모션 된 위젯을 만드는 공장 사용

승격 된 위젯을 얻기 위해 일종의 팩토리를 사용할 수 있습니까?이를 통해 승격 된 위젯의 하위 클래스가 필요할 때 팩토리를 변경하고 위젯의 하위 클래스를 반환 할 수 있습니다.

요구 사항 :

NamePanel* myPanel; 
void setupUi(QWidget* pWidget) 
{ 
    myPanel = Factory::CreateNamePanel(); 
} 

이를 달성하기 위해 주위에 일이 있습니까?

답변

1

유감스럽게도 Ui 파일에 팩토리를 추가 할 수없는 것으로 보입니다. 이 문제를 해결하려면 ui에 레이아웃이 첨부 된 QWidget을 가지고이 레이아웃에 팩토리 생성 위젯을 추가하십시오.

enter image description here

코드는 다음과 같을 것이다 :

ui->setupUi(this); 

QWidget *panel = Factory::CreateNamePanel(); 
ui->namePanelContainer->layout()->addWidget(panel); 
관련 문제