2009-02-10 15 views
0

나는 QT (및 KDE) 프로그램에 들어가려고 노력 중이며, floatable, draggable을 추가하려고 시도했습니다. QDockWidget .ui 내 KDE 4 프로그램에 포함 된 파일 (QWidget 기준).QWidget에 플로팅/임베드 QDockWidget (QT 디자이너에서 설계된 KXmlGuiWindow의 CentralWidget)

이것은 모두 KDevelop 4에서 제공하는 기본 템플릿에서 나온 것입니다. 그래서 나는 무슨 일이 벌어지고 있는지 이해하지만, 그것을 바꾸는 가장 좋은 방법은 모른다. 여기

는 거래의 : MAIN.CPP 전체 쇼를 시작하는 새 AEmpire 창을 생성합니다 :

AEmpire::AEmpire() 
     : KXmlGuiWindow(), 
     m_view(new AEmpireView(this)), 
     m_printer(0) 
{ 
    // tell the KXmlGuiWindow that this is indeed the main widget 
    setCentralWidget(m_view); 

    setupActions(); 
    setupGUI(); 
} 

새로운 AEmpireView(this)가 생성 (QWidget에서 상속) 및 m_view에 할당되어,이 생성자가 호출된다 : 나는 QT 디자이너에서 내 프로그램에 UI를 편집하고 때

AEmpireView::AEmpireView(QWidget *) 
{ 
    ui_aempireview_base.setupUi(this); 
    settingsChanged(); 
    setAutoFillBackground(true); 
} 

그래서, 내가 실제로 QWidgetAEmpireView_base UI 파일을 편집하고 있습니다. KXmlGuiWindow (QMainWindow에서 파생 됨)의 기본보기를 나타내며 런타임에로드됩니다.

그렇다면 플로터 가능하고 드래그 가능한 QDockWidget을 내 메인 애플리케이션에 어떻게 추가합니까? 그것들을 개별적으로 설계하고 UI에 최상의 옵션을 추가합니까? 또는 전체 AEmpireView 클래스를 제거하고 내 ui 파일을 에 의해로드 될 KXmlGuiWindow 개체를 직접 나타내도록 만드시겠습니까?

아니면 분명히 뭔가 뚜렷하게 들여다 보입니까? 읽어 주셔서 감사합니다!

답변

1

나는 QDockWidget 내용을 별도의 UI 파일로 디자인 할 것이다. 그런 다음 생성하여 AEmpire 생성자의 QDockWidgets에 저장하십시오.