qt - 如何将 QMainWindow 更改为 QDialog

标签 qt

我是 Qt 新手。我用Qt做了一个项目。 现在我需要将 QMainWindow 更改为 QDialog。 如何在不删除所有项目的情况下执行此操作? 如果将基本主窗口更改为QDialog,是否需要创建一个新窗口作为主窗口?

最佳答案

取决于您是否有 .ui 文件。

如果是这样,您可以编辑 .ui 并更改行

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

<widget class="QDialog" name="MainWindow">

此外,请考虑一下您的项目中是否需要像 QMenuBarQToolBarQStatusBar 这样的类。 Qt Designer 默认将它们放在 .ui 文件中,因为它们由 QMainWindow 使用。

之后,您应该更改 MainWindow 的基类。你应该有这样的东西:

#include <QMainWindow>

namespace Ui {
class MainWindow;
}

class MainWindow : public QMainWindow
{

所以你需要将QMainWindow更改为QDialog

#include <QDialog>

namespace Ui {
class MainWindow;
}

class MainWindow : public QDialog
{

如果您没有 .ui 文件,则不需要第一步(显然:))

当然,您需要检查是否使用了 QDialog 未实现的任何 QMainWindow 方法,以避免编译错误和功能缺失。

关于qt - 如何将 QMainWindow 更改为 QDialog,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34889915/

相关文章:

c++ - 如何在 Mac OS 的发布版本中包含 Qt 库?

qt - 使用 Qt Creator 编译整个项目,不会在出现第一个错误时停止

qt - QML:如何在Pathview中获取当前项目

qt - 减少表格 View 的单元格填充或边距

c++ - 单击按钮时如何使 linedit 准备好输入

qt - QtCreator (ubuntu) 中的 C++ Octave 链接错误

c++ - QVariant 自定义类多态性

qt - 在 Flickable 中的特定点缩放/缩放图像

qt - 如何使qt qgraphicsview缩放不影响点画图案?

c++ - 从 Windows 启动程序时如何查看键盘修饰符?