c++ Qt中ui和this之间的关系是什么?[关闭]

wztqucjr  于 2024-01-09  发布在  其他
关注(0)|答案(1)|浏览(186)

已关闭。此问题需要更多focused。目前不接受回答。
**要改进此问题吗?**更新此问题,使其仅针对editing this post的一个问题。

4天前关闭。
Improve this question
如果您使用类名MainWindow创建一个Qt widget应用程序,Qt Creator将为您提供以下模板标题:

  1. #ifndef MAINWINDOW_H
  2. #define MAINWINDOW_H
  3. #include <QMainWindow>
  4. QT_BEGIN_NAMESPACE
  5. namespace Ui {
  6. class MainWindow;
  7. }
  8. QT_END_NAMESPACE
  9. class MainWindow : public QMainWindow
  10. {
  11. Q_OBJECT
  12. public:
  13. MainWindow(QWidget *parent = nullptr);
  14. ~MainWindow();
  15. private:
  16. Ui::MainWindow *ui;
  17. };
  18. #endif // MAINWINDOW_H

字符串
此模板来源:

  1. #include "mainwindow.h"
  2. #include "./ui_mainwindow.h"
  3. MainWindow::MainWindow(QWidget *parent)
  4. : QMainWindow(parent)
  5. , ui(new Ui::MainWindow)
  6. {
  7. ui->setupUi(this);
  8. }
  9. MainWindow::~MainWindow()
  10. {
  11. delete ui;
  12. }


什么是ui?它与this有什么关系?

ltskdhd1

ltskdhd11#

qt程序uic.ui文件编译为.h文件。它创建了一个类,其中包含指向表单中定义的所有小部件的指针,以及一个成员函数setupUi,该函数构造所有这些小部件,设置表单中指定的属性,顶级widget是传入widget的直接子级(在本例中是MainWindow示例)。它不会自动显示任何窗口,其他代码会调用主窗口的show成员。
如果创建另一个Ui::MainWindow并将其命名为setupUi,则将使用表单中描述的所有后代小部件填充另一个小部件。

相关问题