2009-02-10 4 views
0

Я просто пытаюсь попасть в программу QT (и KDE) и попал в ловушку, пытаясь добавить плавающий, перетаскиваемый QDockWidget в .ui файл (основанный как QWidget), встроенный в мою программу KDE 4.Плавающий/встроенный QDockWidget в QWidget (KWMGuiWindow's CentralWidget, разработанный в QT Designer)

Это все из базового шаблона, предоставленного 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, это конструктор называется:

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

Так что, когда я редактирую пользовательский интерфейс для моей программы в QT Designer, я на самом деле редактирование файла AEmpireView_base пользовательского интерфейса, который является QWidget. Он просто представляет основной вид KXmlGuiWindow (полученный от QMainWindow) и загружается во время выполнения.

Итак, как мне добавить плавающее, перетаскиваемое QDockWidget s в мое основное приложение? Разрабатывает их отдельно и добавляет их в пользовательский интерфейс наилучшим образом? Или, может быть, удалить весь класс AEmpireView и сделать мой файл ui напрямую представлять объект KXmlGuiWindow, который будет загружен AEmpireClass?

Или я полностью игнорирую нечто очевидное? Спасибо за прочтение!

ответ

1

Я бы разработал содержимое QDockWidget как отдельный файл пользовательского интерфейса. Затем создайте их и вставьте их в QDockWidgets в конструкторе AEmpire.

 Смежные вопросы

  • Нет связанных вопросов^_^