• QT学习之创建项目


    1、添加快捷键到桌面

    找到所在安装路径Qt5.14.1\Tools\QtCreator\bin添加至桌面

    双击后打开

    2、创建项目

    点击下一步

    再点击下一步

    下一步

    当前暂时选择32位,之后点击完成

    3、进入编辑页面并运行

    运行快捷键:Ctrl+R

    运行界面点击按钮:

    运行完成

    至此,运行没有出现问题,说明安装无误。

    4、代码说明

    main.cpp

    1. #include "widget.h" /* 包含自己写的类的头文件 */
    2. #include /* 应用程序类 */
    3. /* 程序入口 argc命令行变量数量 argv命令行变量数组 */
    4. int main(int argc, char *argv[]) /* main函数必须有且仅有一个 */
    5. {
    6. QApplication a(argc, argv); /* 创建一个应用程序类,必须有且仅有一个 */
    7. Widget w; /* 创建窗口对象 */
    8. w.show(); /* 手动显示窗口 */
    9. return a.exec(); /* 应用程序消息循环,相当于while,做一些消息监听、处理 */
    10. }

    widget.cpp

    1. #include "widget.h"
    2. #include "ui_widget.h"
    3. Widget::Widget(QWidget *parent)
    4. : QWidget(parent)
    5. , ui(new Ui::Widget) //窗口被实例化,可供展示
    6. {
    7. ui->setupUi(this); //两个同名类对象绑定到一起
    8. }
    9. Widget::~Widget()
    10. {
    11. delete ui;
    12. }

    widget.h

    1. #ifndef WIDGET_H
    2. #define WIDGET_H
    3. #include
    4. QT_BEGIN_NAMESPACE
    5. namespace Ui { class Widget; }
    6. QT_END_NAMESPACE
    7. class Widget : public QWidget
    8. {
    9. Q_OBJECT /* 使用信号与槽必须包含的一个宏 */
    10. public:
    11. Widget(QWidget *parent = nullptr);
    12. ~Widget();
    13. private:
    14. Ui::Widget *ui;
    15. };
    16. #endif // WIDGET_H
    1. "1.0" encoding="UTF-8"?>
    2. <ui version="4.0">
    3. <class>MainWindowclass>
    4. <widget class="QMainWindow" name="MainWindow">
    5. <property name="geometry">
    6. <rect>
    7. <x>0x>
    8. <y>0y>
    9. <width>800width>
    10. <height>600height>
    11. rect>
    12. property>
    13. <property name="windowTitle">
    14. <string>MainWindowstring>
    15. property>
    16. <widget class="QWidget" name="centralwidget"/>
    17. <widget class="QMenuBar" name="menubar">
    18. <property name="geometry">
    19. <rect>
    20. <x>0x>
    21. <y>0y>
    22. <width>800width>
    23. <height>29height>
    24. rect>
    25. property>
    26. widget>
    27. <widget class="QStatusBar" name="statusbar"/>
    28. widget>
    29. <resources/>
    30. <connections/>
    31. ui>

    项目文件

    1. #加载模块 core核心模块 gui界面模块
    2. QT += core gui #包含的模块
    3. #当QT版本大于4 QT5需要加上widgets模块
    4. greaterThan(QT_MAJOR_VERSION, 4): QT += widgets #大于Qt4版本,才包含widget模块
    5. #配置C++11 让qt支持C++11语法 lamda
    6. CONFIG += c++11
    7. #使用过时函数产生警告
    8. # The following define makes your compiler emit warnings if you use
    9. # any Qt feature that has been marked deprecated (the exact warnings
    10. # depend on your compiler). Please consult the documentation of the
    11. # deprecated API in order to know how to port your code away from it.
    12. DEFINES += QT_DEPRECATED_WARNINGS
    13. #使用过时函数产生警告
    14. # You can also make your code fail to compile if it uses deprecated APIs.
    15. # In order to do so, uncomment the following line.
    16. # You can also select to disable deprecated APIs only up to a certain version of Qt.
    17. #DEFINES += QT_DISABLE_DEPRECATED_BEFORE=0x060000 # disables all the APIs deprecated before Qt 6.0.0
    18. #项目里的源文件
    19. SOURCES += \
    20. main.cpp \
    21. widget.cpp
    22. #项目里的头文件
    23. HEADERS += \
    24. widget.h
    25. #项目里的ui文件
    26. FORMS += \
    27. widget.ui
    28. # Default rules for deployment.
    29. qnx: target.path = /tmp/$${TARGET}/bin #嵌入式平台
    30. else: unix:!android: target.path = /opt/$${TARGET}/bin #unix式平台
    31. !isEmpty(target.path): INSTALLS += target

    解释:

    • Qt系统提供的标准类名声明头文件没有.h后缀,比如当前main.cpp中的QApplication
    • Qt一个类对应一个头文件,类名就是头文件名
    • a.exec()——程序进入消息循环,等待对用户输入进行响应。这里main()把控制权转交给Qt,Qt完成事件处理工作,当应用程序退出的时候exec()的值就会返回。在exec()中,Qt接受并处理用户和系统的事件并且把它们传递给适当的窗口部件。
    • QApplication应用程序类——管理图形用户界面应用程序的控制流和主要设置,是QT的整个后台管理的命脉,包含主事件循环所有事件处理和调度处理应用程序的初始化和结束提供对话管理任何QT图形用户界面应用程序只存在一个QApplication对象。

    输出Hello World

    1. #include
    2. #include
    3. #include
    4. int main(int argc, char* argv[])
    5. {
    6. QApplication a(argc, argv);
    7. QWidget w;
    8. w.show();
    9. //Qt头文件和类名是一致的,所有的头文件都是以Q开头
    10. qDebug()<<"hello world";
    11. return a.exec();
    12. }

  • 相关阅读:
    TexStudio使用教程
    设计模式之工厂模式
    odoo16 一个比较复杂的domain
    windows mysql安装卸载,多版本mysql方案
    HCIE-Security Day46:AC准入控制Dot1x
    J2EE从入门到入土01.MySQL安装
    【云原生】SQL(及存储过程)跑得太慢怎么办?
    Linux 可执行文件瘦身指令 strip 使用示例
    昨天同事lastday,把前端测试包扔线上去了
    Find My雨伞|苹果Find My技术与雨伞结合,智能防丢,全球定位
  • 原文地址:https://blog.csdn.net/weixin_37753215/article/details/133241414