gpt4 book ai didi

c++ - Qt 设计器 : Changing the base class of a window

转载 作者:IT老高 更新时间:2023-10-28 22:21:52 28 4
gpt4 key购买 nike

我已经在 Qt Designer 中为我的应用程序创建了第二个窗口。我读到 QMainWindow 将是第二个窗口的错误类(基本上应该只是某种对话框),所以我想更改基类。

我的问题是:

  1. 有没有办法在不创建新窗口并将我的代码复制到新文件中的情况下更改基类?
  2. 谁能解释一下何时使用 QMainWindow、QDialog 和 QWidget?对于 Qt 中这三个基类之间的差异,我没有找到很好的解释。

最佳答案

  1. 要更改基类,您只能将头文件中的 : public QMainWindow 更改为 : public QWidget (反之亦然)当然还有 *.cpp。

  2. 基本上这三个都是 QWidget,每个都有特殊的功能或用于特定的目的。据我所知,QMainWindow 有工具栏、菜单栏和停靠栏,QDialog 将始终显示为单独的窗口(例如阻塞、非阻塞等),而 QWidget 本身是基类。 IE。 QPushButton、QCombobox 也是从 QWidget 派生的。在我看来,最好只使用一个 QMainWindow,因为它应该是用户交互/导航的中心点

编辑:我忘了提到 UI 文件也必须更改,即通过使用文本编辑器更改行(我认为是第 4 行)

<widget class="QMainWindow" name="YourClassName">

<widget class="QWidget" name"YourClassName">

并删除所有与 QMainWindows 相关的部分(菜单栏、工具栏...)以及中央小部件的封闭标签。

感谢 alexisdm 的提示。

关于c++ - Qt 设计器 : Changing the base class of a window,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17605046/

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