0

我只是想进入 QT(和 KDE)程序,并且遇到了一个障碍,试图向嵌入到我的 KDE 4 程序QDockWidget中的 .ui 文件(基于 a )添加一个可浮动、可拖动的文件。QWidget

这一切都来自 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();
}

当一个 newAEmpireView(this)被创建(继承自QWidget)并被分配给 m_view 时,这个构造函数被调用:

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

所以,当我在 QT Designer 中编辑我的程序的 ui 时,我实际上是在编辑AEmpireView_baseui 文件,它是一个QWidget. 它仅代表KXmlGuiWindow(派生自QMainWindow)的主视图,并在运行时加载。

那么,如何将可浮动、可拖动QDockWidget的 s 添加到我的主应用程序中?单独设计它们并将它们添加到 UI 中是最佳选择吗?或者可能删除整个AEmpireView类,并使我的 ui 文件直接表示KXmlGuiWindow要由AEmpireClass?

还是我完全忽略了一些明显的东西?谢谢阅读!

4

1 回答 1

1

I would design the QDockWidget contents as separate UI files. Then create them and stick them into the QDockWidgets in the AEmpire constructor.

于 2009-02-24T17:06:06.593 回答