【Qt】QtCreator新建QtWidgetsApplication

2023-05-16

【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得到,内容如下:

/********************************************************************************
** 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
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

【Qt】QtCreator新建QtWidgetsApplication 的相关文章

  • LNK1112:模块机器类型“x64”与目标机器类型“X86”冲突:Qt 创建者

    我有一个在 Linux 上运行的应用程序 我试图将其导入到 Windows 上 我已经设置了所有库 并对 pro 文件进行了更改 现在 当我尝试构建项目时 我收到此错误 error LNK1112 module machine type x
  • 优化 QtCreator 编译器的配置

    我在 Windows 7 中使用 QtCreator 我想将其配置为使用第三级优化 O3 用于 C 编译器 我怎样才能加快我的代码速度以及需要进行哪些更改 尝试将下一行添加到您的 pro 文件中 remove possible other
  • 自动完成功能未检测到 eof()、bad()、good() 函数

    该代码块 include
  • QDataWidgetMapper 无法与 QLabels 一起使用

    我正在使用 QDataWidgetMapper 将数据映射到 QLineEdit 它工作正常 当我用于将数据映射到 QLabel 时 它不会在标签中显示任何数据 我尝试按以下方式执行此操作 QDataWidgetMapper testMap
  • QtCreator 中使用 Clang 支持 C++14

    如何使用 Clang 3 5 在 QtCreator 3 3 中启用 C 14 支持 我添加了一个 Clang 套件并且添加了CONFIG c 14在我的项目文件中 然而 当使用例如返回类型推导 https stackoverflow co
  • OpenCV 与 Qt:程序意外完成

    我正在尝试在 Windows 8 64 位上使用 Qt Creator 2 7 0 Qt 5 0 2 配置 OpenCV 执行我的程序时 出现以下错误 计划意外地结束了 这是我的main cpp include mainwindow h i
  • 如何在C++程序中获得debug/release条件编译

    在大型 C Qt QMake qtcreator 项目中 我想执行一些测试 但仅限于使用调试标志进行编译时 有没有办法告诉 g 代码的某些小部分只能在调试模式下编译 执行此操作的标准方法是依赖于宏NDEBUG 由宏使用assert 定义于
  • 如何在Python中读取QLineEdit中的文本?

    我为我的插件创建了一个带有 3 个按钮的启动 GUI 这非常有效 如果我单击其中一个按钮 就会启动特定操作 到目前为止这有效 如果我单击其中一个按钮 则会出现一个带有两个按钮 确定 和 取消 的新 GUI 以及一个行编辑 如果我按下 取消
  • QT-creator 中架构 x86_64 的未定义符号

    我刚刚开始使用 C 正在学习如何使用 QT 创建者作为 IDE 所以我怀疑这可能非常简单 但我可能会遗漏一些东西 我安装了apollo MQ并安装了apache CMS C 消息服务 http activemq apache org cms
  • qwt 图表示例 [关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 大家好 我正在使用 qwt 我是新手 我想使用 qwt 和 qt 创建者绘制图表 我不知道要在我的 qt 项目中包含哪些库来绘制图表 我已
  • 使用带有 MSVC 2015 编译器的 QT Creator 5.8

    我是新来的C 和编程 我正在尝试做一个小项目 使用Qt and Qt Creator 我当时用的是MinGW compiler 但对于这个项目 我需要与MSVC compiler 因为我需要使用QtWebEngineWidgets I ha
  • 在 QtCreator 中查看数组内容

    调试时是否可以在 Qt Creator 中查看数组的内容 似乎检测到我的数组是一个数组而不是一个指针 此外 我可以点击一个箭头 就像展开一样 但之后什么也没有显示 当我试穿的时候std vector Qt Creator 设法按预期显示内容
  • QtCreator 调试暂停停在代码而不是汇编处

    如何配置 QtCreator 以便在调试并按下暂停时它会显示当前正在处理的代码 现在显示汇编 无法在任何地方找到有关此问题的答案 我使用的是 Windows 7 我在 Ubuntu 16 04 中使用 Qt Creator 4 2 2 时遇
  • Qt 创建者 + MITK (Linux)

    我正在尝试使用MITK 与 Qt Creator 我已经通过 ccmake 成功编译并使用了 VTK 和 ITK 我已经编译了 MITK超级建造模式 它下载 CTK VTK ITK 等 然后我就配置好了 我已经用 make 编译了 大约两个
  • 向 Qt 样式表添加特异性时丢失样式

    这是我的代码 const QString STYLE SHEET background color rgba x x x y border 1px solid gray border radius 0px border top 1px so
  • BRISK 特征检测器检测零个关键点

    下面显示的 Brisk 探测器没有给我任何关键点 有人可以提出一个问题吗 我将尝试用一些代码解释我在下面所做的事情 include opencv2 features2d features2d hpp using namespace cv u
  • Qt 图表和数据可视化小部件

    我已经安装了 Qt 5 7 来尝试 Qt 图表和 Qt 数据可视化 但我在 Qt Designer 和 Qt Creator 中都找不到新的小部件 有什么建议我应该做什么才能让新的小部件出现在设计器中 我今天遇到了完全相同的问题 默认情况下
  • 为什么注释以“//!”开头Qt Creator 中的颜色为蓝色?

    Qt Creator 通常将注释标记为绿色 但我在 Qt 示例中看到蓝色注释 并且 Qt Creator 似乎将每个以 穿蓝色衣服 这是一个示例屏幕截图 这是某种约定吗 蓝色代表什么 It s a Doxygen 评论 http www g
  • Qt - 意外的 GDB 退出

    我正在尝试开发一个应用程序 该应用程序创建图像并使用双线性插值填充颜色像素 然后显示它 到目前为止我的代码如下 include
  • 如何阻止 Qt Creator 将可执行文件放置在“调试”子目录中?

    我正在 Qt Creator 中构建一个项目 虽然我不关心中间 obj 文件去哪里 但重要的是最终的可执行文件应放入 并运行 许多依赖项 DLL 等所在的特定目录中 被发现 因此 在 Qt Creator 中 我选择 Shadow Buil

随机推荐

  • 【opencv-c++】cv::GaussianBlur高斯滤波

    opencv c cv GaussianBlur高斯滤波 1 背景 2 示例 1 背景 高斯滤波首先要知道高斯函数 在图像采集的过程中 经常会有噪声出现 这些噪声满足高斯分布 我们简称为高斯噪声 对于高斯噪声 我们采用高斯滤波来去噪 高斯滤
  • 【opencv-c++】cv::bilateralFilter双边滤波

    opencv c cv bilateralFilter双边滤波 1 背景 2 示例 1 背景 由于高斯滤波去降噪 会较明显地模糊边缘 对于高频细节的保护效果并不明显 而双边滤波 Bilateral filter 是一种非线性的滤波方法 是结
  • 【深度学习】模型过拟合的原因以及解决办法

    深度学习 模型过拟合的原因以及解决办法 1 背景2 模型拟合3 简述原因4 欠拟合解决办法5 过拟合解决办法 1 背景 所谓模型过拟合现象 xff1a 在训练网络模型的时候 xff0c 会发现模型在训练集上表现很好 xff0c 但是在测试集
  • 【python中级】Pillow包在图像中绘制中文

    python中级 Pillow包在图像中绘制中文 1 背景 2 python图像中绘制中文 3 下载 1 背景 opencv python到目前为止 还不支持在图像中绘制中文 目标检测类项目一些场景需要在界面上绘制文字信息 而中文的显示需求
  • 【python中级】裁剪1、2寸电子照片

    python中级 裁剪1 2寸电子照片 1 背景 2 物理以及像素尺寸 3 补充说明 4 代码 1 背景 办理业务的时候会用到各种照片 特别是新工作入职 提交个人评审材料等 经常会遇到提供照片的情况 本博客简述如何快速制作1 2寸电子照片
  • 扫描型PDF进行反色打印

    对于扫描出来的图片型pdf xff0c 白花花的白底黑字很难受的 xff0c 怎么办呢 xff1f Acrobat 11 0 10 设置 打印机 为Adobe PDF 点击 34 高级 34 复合灰度 勾选 负片 34 缺点是反色打印后 x
  • 【python中级】强行kill杀掉进程

    python中级 强行kill杀掉进程 1 背景 2 代码 1 背景 如果程序涉及到主进程开子进程 并在一定条件下关闭子进程 大概率就是需要kill杀掉进程 2 代码 以下示例代码 kill杀掉进程 py 可在windows以及linux下
  • 【应用开发】关于串口和通信协议

    开发扩展 关于串口和通信协议 1 背景 2 串口 3 通信协议 1 背景 在做设备开发的时候 会遇到通信相关的开发 这时候经常会有串口 RS232 RS485 modbus modbus RTU等名词在交流中环绕 如果不去理解这些概念 就像
  • 【应用开发】关于ASCII码的进制对照表

    应用开发 关于ASCII码的8 10 16进制对应关系 1 背景 2 ASCII码对照表 3 说明 1 背景 ASCII American Standard Code for Information Interchange美国信息交换标准代
  • 【python初级】10进制与2进制8进制16进制的转换

    python初级 10进制与2进制8进制16进制的转换 背景代码 背景 在做串口通信的时候发送的字符串都是16进制编码的 本博客就介绍10进制与2 8 16进制的相互转换 10进制是我们生活中默认使用的最常用的数值表示方式 所谓十进制就是逢
  • 【Qt】通过共享内存实现应用程序的单实例检查

    Qt 通过共享内存实现应用程序的单实例检查 1 背景2 示例3 运行 1 背景 在开发Qt程序的时候 xff0c 我们往往不希望一台计算机上同一个程序被多次打开 xff0c 即一台计算机上有且只有一个应用程序实例存在 应用程序的单例化 xf
  • 【Qt】SetUnhandledExceptionFilter设置程序异常筛选器函数

    Qt SetUnhandledExceptionFilter设置程序异常筛选器函数 1 背景2 示例3 运行 1 背景 SetUnhandledExceptionFilter设置未处理的异常筛选器函数 xff08 或者叫设置异常捕获函数 异
  • 【Qt】自动查找Qt应用程序缺少的依赖库

    Qt 自动查找Qt应用程序缺少的依赖库 1 背景2 实例3 验证 1 背景 操作系统 xff1a windows10专业版 xff0c 如下图 xff1a Qt版本 xff1a qt opensource windows x86 msvc2
  • 【Qt】将QtDesigner生成的.ui文件转化为.h头文件

    Qt 将QtDesigner生成的 ui文件转化为 h头文件 1 背景2 实例3 附件 1 背景 操作系统 xff1a windows10专业版 Qt版本 xff1a qt opensource windows x86 msvc2013 6
  • 【Qt】通过继承ui界面类的方式加载.ui转化的.h头文件显示窗体

    Qt 通过继承ui界面类的方式加载 ui转化的 h头文件显示窗体 1 背景2 实例3 验证 1 背景 将 ui文件转化为 h头文件参考如下博客 xff1a Qt 将QtDesigner生成的 ui文件转化为 h头文件 https jn100
  • 【Qt】加载.h文件显示窗体并添加交互逻辑

    Qt 加载 h文件显示窗体并添加交互逻辑 1 背景2 实例3 验证 1 背景 加载 ui转化的 h头文件显示窗体 xff0c 以及Test pro ui widget h main cpp请参考如下博客 xff1a Qt 通过继承ui界面类
  • qingnse64.dll的问题(没有完全解决)

    文件夹1文件夹232位windows系统 system xff08 16位dll xff09 system32 32位dll 64位windows系统 syswow64 32位dll system32 64位dll 下面是一系列操作 xff
  • 【Qt】通过创建ui界面类成员变量的方式显示窗体

    Qt 通过创建ui界面类成员变量的方式显示窗体 1 背景2 实例3 验证 1 背景 将 ui 文件转化为 h 头文件参考 xff1a Qt 将QtDesigner生成的 ui文件转化为 h头文件 https jn10010537 blog
  • 【Qt】QtCreator新建Application项目的6类应用程序的示例

    Qt QtCreator新建Application项目的6类应用程序的示例 1 背景2 Application分类 1 背景 操作系统 xff1a windows10专业版 Qt版本 xff1a qt opensource windows
  • 【Qt】QtCreator新建QtWidgetsApplication

    Qt QtCreator新建QtWidgetsApplication 1 背景2 新建项目3 项目文件4 编译说明 1 背景 操作系统 xff1a windows10专业版 Qt版本 xff1a qt opensource windows