gpt4 book ai didi

c++ - Floating/Embedded QDockWidget in a QWidget (KXmlGuiWindow's CentralWidget designed in QT Designer)

转载 作者:行者123 更新时间:2023-11-28 08:33:59 25 4
gpt4 key购买 nike

我只是想进入 QT(和 KDE)程序,但在尝试向 .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 中编辑程序的 ui 时,我实际上是在编辑 AEmpireView_base ui 文件,它是一个 QWidget。它仅表示 KXmlGuiWindow(派生自 QMainWindow)的主视图,并在运行时加载。

那么,如何将可 float 、可拖动的 QDockWidget 添加到我的主应用程序中?单独设计它们,然后将它们添加到 UI 中是最佳选择吗?或者删除整个 AEmpireView 类,让我的 ui 文件直接代表一个 KXmlGuiWindow 对象,由 AEmpireClass 加载?

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

最佳答案

我会将 QDockWidget 内容设计为单独的 UI 文件。然后创建它们并将它们粘贴到 AEmpire 构造函数中的 QDockWidgets 中。

关于c++ - Floating/Embedded QDockWidget in a QWidget (KXmlGuiWindow's CentralWidget designed in QT Designer),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/530992/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com