文章目录
- Qt简介
- Qt建立工程
- 准备
- 建立控制台程序
- 建立桌面窗口程序
 
 
 
Qt简介
Qt(官方发音[kju:t],同音cute)是一个跨平台的C++开发库,主要用来开发图形用户界面(Graphical User Interface,GUI)程序,当然也可以开发不带界面的命令行(Command User Interface,CUI)程序。同时也是图像用户界面应用程序框架,他为应用程序开发者提供建立艺术级图形界面所需的功能。它是完全面向对象的,很容易扩展,并且允许真正的组件编程。
Qt支持的操作系统有很多,例如通用操练系统Windows、Linux、Unix,智能手机系统Android、IOS、WinPhone,嵌入式系统QNX、VxWorks 等等。
Qt虽然经常被当作一个GUI库,用来开发图形界面应用程序,但这并不是Qt的全部;Qt除了可以绘制漂亮的界面(包括控件、布局、交互),还包含很多其他功能,比如多线程、访问数据库、图像处理、音频视频处理、网络通信、文件操作等,这些Qt都已经内置了。
用Qt来开发Windows桌面程序有以下优点:
- 简单易学:Qt封装的很好,几行代码就可以开发出一个简单的客户端,不需要了解Windows API。
- 跨平台:如果你的程序需要运行在多个平台下,同时又希望降低开发成本,Qt几乎是必备的。
- 漂亮的界面:Qt很容易做出漂亮的界面和炫酷的动画,而MFC、WTL、wxWidgets比较麻烦。
- 独立安装:Qt程序最终会编译为本地代码,不需要其他库的支撑,而Java要安装虚拟机,C#要安装.NET Framework。
Qt建立工程
准备
刚打开我们的Qt时界面应该是这样的
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-2stqI7pe-1687405091951)(C++.assets/image-20230612231737644.png)]](https://img-blog.csdnimg.cn/7557a5398bec4ad8a3b18e60b7341886.png)
在工具菜单中找到选项
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-gVRp5VxR-1687405091952)(C++.assets/image-20230612235458035.png)]](https://img-blog.csdnimg.cn/10e031c2bbd648a5a07b0e2a1f5b8e7a.png)
然后找到文本编辑器,看默认编码是否为UTF-8,为了方便开发和避免中文乱码问题,将文本编辑器的默认编码改成【UTF-8】
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-K3IJSgU4-1687405091953)(C++.assets/image-20230612235541738.png)]](https://img-blog.csdnimg.cn/2b0f8affd16540f4ac5c8ffd4433fca5.png)
建立控制台程序
我们选择Application下的Qt Console Application
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-s99L867H-1687405091953)(C++.assets/image-20230612232525213.png)]](https://img-blog.csdnimg.cn/4ec6480614624daeb262876a1713f288.png)
然后填写名称并选择路径(名称和路径不能带中文、空格)
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-s8miVkKQ-1687405091954)(C++.assets/image-20230612232711449.png)]](https://img-blog.csdnimg.cn/8d426dfc356b47e88f091bc97faf72d5.png)
选择一个合适的编辑套件
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-wlgOqst2-1687405091954)(C++.assets/image-20230612233204752.png)]](https://img-blog.csdnimg.cn/47be82b7b0a749ae81b3a87c1d858f27.png)
然后一路下一步直到完成,最终会添加一个.pro和一个.cpp文件
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-tj6dzVnm-1687405091954)(C++.assets/image-20230612233254931.png)]](https://img-blog.csdnimg.cn/b5d04ed672044ae892f0950c082f20bd.png)
这里的main函数跟vs里的略有差别,多了命令行参数。
可以尝试输出命令行
#include <QCoreApplication>
#include <iostream>
using namespace std;
//argc:命令行参数的数量
//argv:具体的命令行参数,数组
int main(int argc, char *argv[])
{
    QCoreApplication a(argc, argv);
    for(int i=0;i<argc;i++){
        cout<<"cmd = "<<argv[i]<<endl;
    }
    return a.exec();
}
默认是输出路径与exe名称
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-CWOVFGqu-1687405091955)(C++.assets/image-20230612235016001.png)]](https://img-blog.csdnimg.cn/b6e58515e55a484ba9a36d876a1cf1a3.png)
有关运行的一些按键功能
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Og7zErAn-1687405091955)(C++.assets/image-20230613002105697.png)]](https://img-blog.csdnimg.cn/3406ba96328340d2be6253f8e044abb8.png)
也可以手动配置命令行参数
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-bwykbQQV-1687405091955)(C++.assets/image-20230612235332181.png)]](https://img-blog.csdnimg.cn/46ad7338f237482791e2b9fb9be37f04.png)
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-qJu9Vkox-1687405091956)(C++.assets/image-20230612235345641.png)]](https://img-blog.csdnimg.cn/27465d21903940ecb066adf559f9e4a9.png)
建立桌面窗口程序
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-EvszOy52-1687405091956)(C++.assets/image-20230613000000207.png)]](https://img-blog.csdnimg.cn/1121dbad9edc402689f8863946406b86.png)
会自动创建出工程文件、主窗口头文件、主函数源文件、主窗口源文件和ui界面文件
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-7Rbmrru0-1687405091956)(C++.assets/image-20230613000452855.png)]](https://img-blog.csdnimg.cn/54d6759bcce94e0d9e482b9707566ff8.png)
初始运行窗口
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ayh10Gb3-1687405091956)(C++.assets/image-20230613002154851.png)]](https://img-blog.csdnimg.cn/4bb609c93f76453db9581d9c4ed50f42.png)
双击ui文件可以进入到设计界面
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-cIXED2tr-1687405091957)(C++.assets/image-20230613002402200.png)]](https://img-blog.csdnimg.cn/51446fef127a4a4a81bf6082fa9d07be.png)
左侧有很多组件,可以直接拖拽到窗口上,然后双击可以进行编辑
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-X5igRx9S-1687405091957)(C++.assets/image-20230613002614913.png)]](https://img-blog.csdnimg.cn/9f40248ce2334cdf8be215379ea40cbe.png)
然后再运行这些组件就在窗口上了
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-lQjHiY5l-1687405091957)(C++.assets/image-20230613002645383.png)]](https://img-blog.csdnimg.cn/e88e4cb2f3454453ad7344e5dc671135.png)
但是具体按下哪个按钮有什么作用,会发生什么,还没有添加,这与后面要学的信号槽有关。
我们添加的每一个组件在界面右侧上半部分都会创建出对应的类和对象
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-6okNcrYg-1687405091958)(C++.assets/image-20230613003242532.png)]](https://img-blog.csdnimg.cn/9eecf674c2f04399b39e7602c1c36e0f.png)
右侧下半部分为窗口中所涉及到的有关属性和值
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-QUHHLEHV-1687405091958)(C++.assets/image-20230613003523469.png)]](https://img-blog.csdnimg.cn/a3b5751e7ebe4fd299b6323e5f8755f8.png)
这些组件都是建立在Ui的MainWindow类中的。在ui_mainwindow.h头文件中可以找到。这个文件是后生成的,根据我们添加的组件自动在这里生成。



















