Я просто пытаюсь войти в программу QT (и KDE) и попал в ловушку, пытаясь добавить плавающий перетаскиваемый QDockWidget
в файл .ui (основанный на QWidget
), который встроен в моя программа KDE 4.
Это все из базового шаблона, предоставленного 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
в мое основное приложение? Является ли их разработка по отдельности и добавление их в пользовательский интерфейс лучшим вариантом? Или, может быть, удалив весь класс AEmpireView
и заставив мой пользовательский файл напрямую представлять объект KXmlGuiWindow
, который должен быть загружен AEmpireClass
?
Или я полностью упускаю из виду нечто очевидное? Спасибо за чтение!