나는 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);
}
그래서, 내가 실제로 QWidget
인 AEmpireView_base
UI 파일을 편집하고 있습니다. KXmlGuiWindow
(QMainWindow
에서 파생 됨)의 기본보기를 나타내며 런타임에로드됩니다.
그렇다면 플로터 가능하고 드래그 가능한 QDockWidget
을 내 메인 애플리케이션에 어떻게 추가합니까? 그것들을 개별적으로 설계하고 UI에 최상의 옵션을 추가합니까? 또는 전체 AEmpireView
클래스를 제거하고 내 ui 파일을 에 의해로드 될 KXmlGuiWindow
개체를 직접 나타내도록 만드시겠습니까?
아니면 분명히 뭔가 뚜렷하게 들여다 보입니까? 읽어 주셔서 감사합니다!