当前位置: 首页 > news >正文

【QT开发手册】 Qt界面介绍Qt程序多种实现项目文件解析

请添加图片描述

文章目录

  • 📝认识QtCreator界⾯
    • 🌉左边栏
    • 🌉代码编辑区
    • 🌉UI设计界⾯
  • 🌠 构建区
  • 🌠 QtHelloWorld程序
    • 🌉使⽤"按钮"实现
      • 🌉 纯代码⽅式实现
      • 🌉可视化操作实现
    • 🌉使⽤"标签"实现
    • 🌉纯代码方式实现
    • 🌉可视化操作实现
  • 🌠 项⽬⽂件解析
    • 🌉 .pro ⽂件解析
    • 🌉widget.h ⽂件解析
    • 🌉widget.cpp ⽂件解析
    • 🌉widget.ui ⽂件解析
  • 🌠 Qt编程注意事项
    • 🌉 Qt中的命名规范
    • 🌉 QtCreator中的快捷键
    • 🌉 使⽤帮助⽂档
  • 🚩总结


📝认识QtCreator界⾯

🌉左边栏

在这里插入图片描述
在编辑模式下,左边竖排的两个窗⼝叫做"边栏"。①是项⽬⽂件管理窗⼝,②是打开⽂件列表窗⼝。
QtCreator菜单"控件"------->“ShowLeftSidebar”,或者使⽤快捷键:“Alt+0” 可以控制边栏的显⽰和隐藏。

边栏⾥的窗⼝数⽬可以增加,边栏⼦窗⼝标题栏有⼀排⼩按钮,最右边的是关闭按钮,倒数第⼆个是增加分栏按钮,可以添加多个边栏⼦窗⼝。
在这里插入图片描述

边栏⼦窗⼝标题栏第⼀个控件是组合框,可以选择该⼦窗⼝的功能视图类型,⽬前可以选择8个视图类型:

在这里插入图片描述

视图类型说明
项目即项目文件管理视图,可以选择项目里的文件进行编辑,包括 pro 文件也可以手动编辑。
打开文档当前已经打开的文件列表,文件名右边如果有 * 号,是该文件被修改了但尚未保存。
书签右击代码编辑器行号位置,看到 “切换书签”,可以给代码行添加书签,方便跳转到该位置。
文件系统相当于系统里的文件资源管理器,可以查看项目文件夹在磁盘里的实际文件列表。
类视图可以查看项目里包含的类及相应源代码文件里的成员函数、成员变量。
Git Branches查看当前分支
大纲编辑器所显示的当前文件的大纲列表,如名字空间、类名、成员函数、成员变量等。
Tests测试
类型层次当前项目包含的类及其基类、派生类列表。
Include Hierarchy包含视图,显示当前项目里 .h、.cpp 以及 Qt 类库头文件之间的包含关系。

🌉代码编辑区

在这里插入图片描述
①和②:导航按钮"返回"和"前进",这与⽹⻚浏览器的前进和后退按钮类似,可以在之前浏览的多个
代码⽂件或⼀个代码⽂件⾥多个位置之间快速切换。
③:标识当前显⽰的⽂件是只读还是可写,⼀般都是可写的。
④:⽂件类型图标,当前显⽰⽂件的类型,这个控件其实是⼀个菜单按钮,点击可以弹出丰富的⽂件
处理功能菜单。
⑤:打开的⽂件名,可以在多个打开的⽂件之间选择切换,与边栏的"打开⽂档"视图是对应的。
⑥:关闭当前显⽰的⽂档。
⑦:为当前显⽰的⽂件添加额外的C++预处理指令,⼀般⽤不着。
⑧:选择符号,可以在当前显⽰的⽂件⾥多个函数、类、成员变量等之前快速切换,与边栏"⼤纲"视
图是对应的。
⑨:编辑区光标的⾏号和列号。
⑩:代码编辑区分栏,可以增加多个编辑器窗⼝,显⽰多个打开的⽂档或显⽰较⼤源码⽂件的多个位
置。
**⾏⾸区:**主要⽤来显⽰代码⾏号,以及调试断点标志和代码书签标志。右击⾏⾸区可以弹出右键菜
单,菜单⾥可以切换书签、编辑书签以及设置或取消断点。

同⼀⾏是既可以打断点也可以设置书签的,⼆者不冲突,其实它们根本就没关系。单击⾏号前⾯的浅灰⾊空⽩区可以直接打断点,再次单击可以取消断点,另外也可以⽤快捷键F9设置或取消断点。代码书签⼀般⽤右键菜单来设置,也可以⽤快捷键Ctrl+M设置或取消书签。

编辑区:写代码的区域。

🌉UI设计界⾯

双击widget.ui⽂件,QtCreator会⾃动进⼊设计模式,可以对图形界⾯进⾏可视化编辑:

在这里插入图片描述
①:组件选择窗⼝。组件选择窗⼝分为多个组,如Layouts、Buttons、DisplayWidgets等,界⾯设计的常⻅组件都可以在组件选择窗⼝中找到。
②:UI设计窗⼝。如果要将某个组件放置到该窗⼝上时,从组件选择窗⼝上拖放⼀个组件到窗体上即可。
③:动作编辑窗⼝。动作编辑窗⼝包括ActionEditor以及Signals和Slots编辑器。ActionEditor主要是⽤来新建Action,并且通过拖拽的动作,将新建好的Action添加到菜单栏和⼯具栏上;Signals和Slots编辑器⽤于可视化地进⾏信号与槽的关联。
④:对象浏览窗⼝。⽤树状视图显⽰窗体上各组件之间的布局包含关系,视图有两列,显⽰每个组件的对象名称(ObjectName)和类名称。
⑤:属性设置窗⼝。显⽰某个选中的组件或窗体的各种属性及其取值,可以在属性设置窗⼝⾥修改这些属性的值。

🌠 构建区

在这里插入图片描述
左下⻆⼀共有四个按钮,下⾯分别介绍⼀下:

  • 第⼀个按钮是选择构建项⽬使⽤的Qt套件和构建⽬标程序的类型(Debug或Release)。对于第⼀个按钮,默认的是Debug,构建的是Debug类型的⽬标程序。如果需要构建Release版⽬标

程序,点开左下⻆第⼀个按钮:
在这里插入图片描述
这⾥有三种构建模式:

模式说明
Debug以 “-g” 模式编译,带着符号信息,优点是便于调试
Profileprofile 则是在 “Debug” 和 “Release” 之间取一个平衡,兼顾性能和调试,可以类似的看做是性能更优又方便调试的版本。
Release“Release” 是经过优化之后,性能比 “Debug” 更上一个档次

上图是针对项⽬只⽤到单⼀Qt套件的,如果之前配置了多个Qt套件,看到的类似下图:

🌠 QtHelloWorld程序

🌉使⽤"按钮"实现

🌉 纯代码⽅式实现

#include "widget.h"
#include "ui_widget.h"
// #include "mylabel.h"
#include <QPushButton>Widget::Widget(QWidget *parent): QWidget(parent), ui(new Ui::Widget)
{ui->setupUi(this);QPushButton * btn = new QPushButton; //创建按钮btn->setText("Hell_Qt");   //在按钮上显示 Hello worldbtn->setParent(this); //将按钮置于窗口上//更推荐这种推荐在堆上创建的对象// MyLabel* label = new MyLabel(this);// label->setText(("hello world"));// QLabel label(this);// label.setText(("hello world"));
}Widget::~Widget()
{delete ui;
}

在这里插入图片描述

实现效果如下图
在这里插入图片描述

🌉可视化操作实现

(1)双击:"widget.ui"⽂件;

在这里插入图片描述
(2)拖拽控件⾄ui界⾯窗⼝并修改内容;

在这里插入图片描述
(3)构建并运⾏,效果如下所⽰:
在这里插入图片描述

🌉使⽤"标签"实现

🌉纯代码方式实现

在这里插入图片描述
实现效果:
在这里插入图片描述

🌉可视化操作实现

(1)双击:"widget.ui"⽂件;
在这里插入图片描述

(2)拖拽"标签"⾄UI设计界⾯中,并双击修改标签内容;
在这里插入图片描述(3)实现效果如下图所⽰:
在这里插入图片描述

🌠 项⽬⽂件解析

🌉 .pro ⽂件解析

⼯程新建好之后,在⼯程⽬录列表中有⼀个后缀为".pro"的⽂件,".pro"⽂件就是⼯程⽂件(project)
,它是qmake ⾃动⽣成的⽤于⽣产 makefile 的配置⽂件。如图所⽰:
在这里插入图片描述

双击进⼊该⽂件,该⽂件的核⼼内容如下:

QT +=coregui // Qt 包含的模块
greaterThan(QT_MAJOR_VERSION, 4): QT+=widgets //⼤于Qt4版本才包含widget模块
TARGET=QtFirst    //应⽤程序名⽣成的.exe程序名称
TEMPLATE=app     //模板类型,应⽤程序模板   
SOURCES+=main.cpp\ //源⽂件
widget.cpp      //源⽂件
HEADERS+=widget.h //头⽂件

".pro" ⽂件的写法如下:

  1. 注释:从"#"开始,到这⼀⾏结束。
  2. QT +=coregui //Qt包含的模块 Qt5包含的模块如下图所⽰
    在这里插入图片描述
  3. greaterThan(QT_MAJOR_VERSION,4): QT+=widgets 这条语句的含义是,如果
    QT_MAJOR_VERSION ⼤于4也就是当前使⽤的Qt5及更⾼版本)需要增加widgets 模块。如果
    项⽬仅需⽀持Qt5,也可以直接
    添加"QT+=widgets"⼀句。不过为了保持代码兼容,最好还是按照QtCreator⽣成的语句编写。
  4. 指定⽣成的应⽤程序名:TARGET=QtDemo
  5. TEMPLATE=app//模板。告诉qmake为这个应⽤程序⽣成哪种makefile。下⾯是可供选择的模板:
    ⚫app:建⽴⼀个应⽤程序的makefile。这是默认值,所以如果模板没有被指定,这个将被使
    ⽤。
    ⚫lib:建⽴⼀个库的makefile。
    ⚫vcapp:建⽴⼀个应⽤程序的VisualStudio项⽬⽂件。
    ⚫vclib:建⽴⼀个库的VisualStudio项⽬⽂件。
    ⚫subdirs:这是⼀个特殊的模板,它可以创建⼀个能够进⼊特定⽬录的makefile并且为它调⽤make的makefile。
  6. ⼯程中包含的源⽂件:SOURCES+=main.cpp/widget.cpp
  7. ⼯程中包含的头⽂件:HEADERS+=widget.h
  8. ⼯程中包含的资源⽂件:RESOURCES+=painter.qrc
  9. ⼯程中包含的"ui"设计⽂件:FORMS+=widget.ui
  10. 配置信息:CONFIG+=c++11(使⽤c++11的特性) CONFIG⽤来告诉qmake关于应⽤程序的配
    置信息。

🌉widget.h ⽂件解析

在Qt中,如果要使⽤信号与槽(signal和slot)的机制就必须加⼊Q_OBJECT宏;Ui::Widget *ui; 这个指针是⽤前⾯声明的namespaceUi⾥的Widget类定义的,所以指针ui是指向可视化设计的界⾯,后⾯要访问界⾯上的组件,都需要通过这个指针ui去访问。
在这里插入图片描述

  1. Qt系统提供的标准类名声明头⽂件没有.h后缀;
  2. Qt⼀个类对应⼀个头⽂件,类名就是头⽂件名;
  3. QApplication 为应⽤程序类;QApplicationa;(a为应⽤程序对象,有且仅有⼀个。)
    ⚫QApplication管理图形⽤⼾界⾯应⽤程序的控制流和主要设置。
    ⚫QApplication是Qt的整个后台管理的命脉。它包含主事件循环,在其中来⾃窗⼝系统和其它资源的所有事件处理和调度。它也处理应⽤程序的初始化和结束,并且提供对话管理。
    ⚫对于任何⼀个使⽤Qt的图形⽤⼾界⾯应⽤程序,都正好存在⼀个QApplication对象,⽽不论这个应⽤程序在同⼀时间内是不是有0、1、2或更多个窗⼝。
  4. myWidgetw; //实例化窗⼝对象
  5. w.show();//调⽤show函数显⽰窗⼝
  6. a.exec() :程序进⼊消息循环,等待对⽤⼾输⼊进⾏响应。这⾥main()把控制权转交给Qt,Qt完成事件处理⼯作,当应⽤程序退出的时候exec()的值就会返回。在 exec()中,Qt 接受并处理⽤⼾和系统的事件并且把它们传递给适当的窗⼝部件。

🌉widget.cpp ⽂件解析

widget.cpp ⽂件是类Widget的实现代码,所有在窗体上要实现的功能添加在此⽂件中;

在这里插入图片描述

🌉widget.ui ⽂件解析

在这里插入图片描述

widget.ui 是窗体界⾯定义⽂件,是⼀个XML⽂件,定义了窗⼝上的所有组件的属性设置、布局,及其信号与槽函数的关联等。⽤UI设计器可视化设计的界⾯都由Qt⾃动解析,并以XML⽂件的形式保存下来。在设计界⾯时,只需在UI设计器⾥进⾏可视化设计即可,⽽不⽤管widget.ui⽂件是怎么⽣成的。

🌠 Qt编程注意事项

🌉 Qt中的命名规范

  • 类名:⾸字⺟⼤写,单词和单词之间⾸字⺟⼤写;
  • 函数名及变量名:⾸字⺟⼩写,单词和单词之间⾸字⺟⼤写;

Qt偏好驼峰命名法.这⼀点不像咱们之前课堂上偏好蛇形命名.

🌉 QtCreator中的快捷键

  • 注释:ctrl+/
  • 运⾏:ctrl+R
  • 编译:ctrl+B
  • 字体缩放:ctrl+⿏标滑轮
  • 查找:ctrl+F
  • 整⾏移动:ctrl+shift+⬆/⬇
  • 帮助⽂档:F1
  • ⾃动对⻬:ctrl+i;
  • 同名之间的.h和.cpp的切换:F4
  • ⽣成函数声明的对应定义:alt+enter

🌉 使⽤帮助⽂档

打开帮助⽂档有三种⽅式.实际编程中使⽤哪种都可以.
1、光标放到要查询的类名/⽅法名上,直接按F1
2、QtCreator左侧边栏中直接⽤⿏标单击"帮助"按钮:

在这里插入图片描述
点击"帮助"之后,出现如下图⽰界⾯:

在这里插入图片描述

3、找到QtCreator的安装路径,在"bin"⽂件夹下找到assistant.exe,双击打开;

在这里插入图片描述
在这里插入图片描述

使⽤⽰例
1、新建项⽬,在新建的项⽬中使⽤Qt中的"QpushButton"控件。
2、打开帮助⼿册,在"索引"⾥⾯输⼊"QpushButton";

在这里插入图片描述

不要使⽤中⽂⽂档!
不要使⽤中⽂⽂档!
不要使⽤中⽂⽂档!
阅读英⽂⽂档是每个程序员必备的专业技能.必须要练,不能退缩.Qt的⽂档从通俗易懂的⻆
度来说,是技术类⽂档中⾮常出类拔萃的.只要⼤家稍微有点耐⼼,基本都能读懂个⼋九不离
⼗.
咱们后续的学习中,也会经常翻阅⽂档.


🚩总结

请添加图片描述

http://www.dtcms.com/a/301085.html

相关文章:

  • C语言(长期更新)第6讲:函数
  • 20250727-1-Kubernetes 网络-Ingress介绍,部署Ingres_笔记
  • Java面试精进:测试、监控与序列化技术全解析
  • Product Hunt 每日热榜 | 2025-07-27
  • 【C语言网络编程基础】TCP 服务器详解
  • 《不只是接口:GraphQL与RESTful的本质差异》
  • 机器学习的算法有哪些?
  • python优秀案例:基于python flask实现的小说文本数据分析与挖掘系统,包括K-means聚类算法和LDA主题分析
  • 系统整理Python的条件语句和常用方法
  • [ctfshow web入门]web99 in_array的弱比较漏洞
  • Java面试题及详细答案120道之(081-100)
  • OpenHarmony部件化编译最佳实践
  • 【优选算法】BFS解决FloodFill算法
  • Triton Shared编译
  • 零基础学习性能测试第五章:Tomcat的性能分析与调优-Tomcat原理,核心配置项,性能瓶颈分析,调优
  • JavaScript - 实现套索工具的demo
  • 机器学习鸢尾花案例
  • 面试150 只出现一次的数字Ⅱ
  • 相关数电知识
  • 【51单片机和数码管仿真显示问题共阴共阳代码】2022-9-24
  • Web3与元宇宙:构建下一代互联网的数字文明
  • Petalinux生成文件的关系
  • Flutter 生命周期介绍
  • 2507C++,结构化存储与复合文件
  • JavaWeb(苍穹外卖)--学习笔记13(微信小程序开发,缓存菜品,Spring Cache)
  • epoll_event 事件类型详解
  • Python折线图
  • Spring 核心流程
  • 问津集 #2:High Compression and Fast Search on Semi-Structured Logs
  • 网络基础19:OSPF多区域实验