【Qt】QtCreator新建QtWidgetsApplication

【Qt】QtCreator新建QtWidgetsApplication

  • 1、背景
  • 2、新建项目
  • 3、项目文件
  • 4、编译说明

1、背景

操作系统:windows10专业版。
Qt版本:qt-opensource-windows-x86-msvc2013_64-5.7.1.exe
注意:安装了该exe可执行文件,就自动安装了qtcreator5.7.1。
QtCreator是开发Qt程序的IDE。

本博客介绍最基本的QtCreator使用,
即新建项目,选择Application(应用程序)–>“Qt Widgets Application”

2、新建项目

新建的项目是Qt Widgets Application。

step-1:点击菜单栏文件–>新建文件或项目
在这里插入图片描述

step-2:模板–>项目(Application)–>Qt Widgets Application
在这里插入图片描述

step-3:填写项目名称以及项目目录
在这里插入图片描述

step-4:选择编译器工具包Kit
在这里插入图片描述

step-5: 填写类名以及选择基类
注意基类一共有3种,分别是:QMainWindow、QWidget、QDialog;
如下图,基类选择的是QMainWindow
在这里插入图片描述

step-6: 点击完成
在这里插入图片描述

3、项目文件

以上步骤完成Qt Widgets Application项目的新建,将在选择的目录生成项目文件,分别如下:

项目文件QtWidgetsApp.pro:
在这里插入图片描述

继承窗体界面class的头文件mainwindow.h:
在这里插入图片描述

继承窗体界面class的源文件mainwindow.cpp:
在这里插入图片描述

程序入口函数main函数的源文件main.cpp:
在这里插入图片描述

界面文件,即xml格式的窗体文件mainwindow.ui:
在这里插入图片描述

4、编译说明

4.1、关于ui_mainwindow.h说明:
可以看到QtWidgetApp.pro文件内容中:

FORMS    += mainwindow.ui

对应的是mainwindow.cpp源代码中的第2行:

#include "ui_mainwindow.h"

ui文件是xml格式的,Qt编译时,先用uic.exe工具将mainwindow.ui编译生成ui_mainwindow.h头文件。

而mainwindow.cpp源代码中的列表初始化部分如下:

MainWindow::MainWindow(QWidget *parent) :
    QMainWindow(parent),
    ui(new Ui::MainWindow)
{
    ui->setupUi(this);
}

冒号后面的两行代码,是C++的列表初始化。其中QMainWindow(parent) 是父类构造函数的初始化列表操作,即显式调用基类(父类)的构造函数。

ui(new Ui::MainWindow) 是子类的成员初始化,即初始化ui指针,ui指针在mainwindow.h中定义的。

可以改成如下写法:

MainWindow::MainWindow(QWidget *parent) :
    QMainWindow(parent)
{
    ui=new Ui::MainWindow;
    ui->setupUi(this);
}

这个头文件ui_mainwindow.h是c++类,可以通过
uic.exe mainwindow.ui -o ui_mainwindow.h得到,内容如下:文章来源地址https://uudwc.com/A/0pkW

/********************************************************************************
** Form generated from reading UI file 'mainwindow.ui'
**
** Created by: Qt User Interface Compiler version 5.7.1
**
** WARNING! All changes made in this file will be lost when recompiling UI file!
********************************************************************************/

#ifndef UI_MAINWINDOW_H
#define UI_MAINWINDOW_H

#include <QtCore/QVariant>
#include <QtWidgets/QAction>
#include <QtWidgets/QApplication>
#include <QtWidgets/QButtonGroup>
#include <QtWidgets/QHeaderView>
#include <QtWidgets/QMainWindow>
#include <QtWidgets/QMenuBar>
#include <QtWidgets/QStatusBar>
#include <QtWidgets/QToolBar>
#include <QtWidgets/QWidget>

QT_BEGIN_NAMESPACE

class Ui_MainWindow
{
public:
    QMenuBar *menuBar;
    QToolBar *mainToolBar;
    QWidget *centralWidget;
    QStatusBar *statusBar;

    void setupUi(QMainWindow *MainWindow)
    {
        if (MainWindow->objectName().isEmpty())
            MainWindow->setObjectName(QStringLiteral("MainWindow"));
        MainWindow->resize(400, 300);
        menuBar = new QMenuBar(MainWindow);
        menuBar->setObjectName(QStringLiteral("menuBar"));
        MainWindow->setMenuBar(menuBar);
        mainToolBar = new QToolBar(MainWindow);
        mainToolBar->setObjectName(QStringLiteral("mainToolBar"));
        MainWindow->addToolBar(mainToolBar);
        centralWidget = new QWidget(MainWindow);
        centralWidget->setObjectName(QStringLiteral("centralWidget"));
        MainWindow->setCentralWidget(centralWidget);
        statusBar = new QStatusBar(MainWindow);
        statusBar->setObjectName(QStringLiteral("statusBar"));
        MainWindow->setStatusBar(statusBar);

        retranslateUi(MainWindow);

        QMetaObject::connectSlotsByName(MainWindow);
    } // setupUi

    void retranslateUi(QMainWindow *MainWindow)
    {
        MainWindow->setWindowTitle(QApplication::translate("MainWindow", "MainWindow", Q_NULLPTR));
    } // retranslateUi

};

namespace Ui {
    class MainWindow: public Ui_MainWindow {};
} // namespace Ui

QT_END_NAMESPACE

#endif // UI_MAINWINDOW_H

原文地址:https://blog.csdn.net/jn10010537/article/details/128607292

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请联系站长进行投诉反馈,一经查实,立即删除!

h
上一篇 2023年06月14日 17:40
ElasticSearch7.6.x 学习笔记
下一篇 2023年06月14日 17:40