当前课程知识点:程序设计基础(下) >  拓展学习 >  QT编程入门 >  QT编程入门

返回《程序设计基础(下)》慕课在线视频课程列表

QT编程入门资料文件与下载

QT编程入门


                      QT桌面程序编程入门介绍

1.认识QT

1.1什么是QT

Qt是一个跨平台的C++图形用户界面应用程序框架(GUI)。它为应用程序开发者提供建立艺术级图形界面所需的所有功能。它是完全面向对象的,很容易扩展,并且允许真正的组件编程。基本上,Qt 同 X Window 上的 Motif,Openwin,GTK 等图形界 面库和 Windows 平台上的 MFC,OWL,VCL,ATL 是同类型的东西。

1.2QT的优点

面向对象,Qt 的良好封装机制使得 Qt 的模块化程度非常高,可重用性较好,对于用户开发来说是非常 方便的。 Qt 提供了一种称为 signals/slots 的安全类型来替代 callback,这使得各个元件 之间的协同工作变得十分简单。

丰富的 API,Qt包括多达 250 个以上的 C++类,还替供基于模板的collections, serialization,file,I/O device, directory management,date/time类。甚至还包括正则表达式的处理功能。

2.QT安装

2.1下载QT

我们可以在这个网站中下载Qt:http://download.qt.io/archive/qt/。网站中列出了诸多可用的QT版本,个人建议5.5以上的版本都可以。我个人电脑为Win10QT版本5.5.1

我们以5.5.1版本为例进行讲解。

进去之后根据自己的需要可以下载不同环境编译器下版本,/qt-opensource-windows-x86-mingw492-5.5.1.exe/因为我们只设计到桌面界面开发下载此版本即可。

2.2QT安装

下载好之后我们启动安装

这里可以不需要注册账户直接skip就好。

之后一直默认系统安装即可,选择组件时可以“全选”进行安装即可。

3.软件介绍 

3.1Qt Creater

QtCreator作为Qt官方的开发环境,对Qt各方面支持都非常完善,而且使用起来体验也非常好,所以没有特殊情况,建议大家使用Qt Creator进行Qt开发(PS:疑惑:难道还能使用其他IDE进行Qt开发?答疑:当然了,比如用的比较多的VS,不仅如此,即便不用IDE,直接使用记事本也可以编写Qt程序!)。

QtCreator主界面分为了6个模式:欢迎模式、编辑模式、设计模式、Debug调试模式、项目模式和帮助模式,分别由左侧的6个图标进行切换,对应的快捷键是Ctrl + 数字1到6。现在显示的就是欢迎界面,这里可以看到一些入门教程、开发的项目列表、Qt提供的示例程序,单击一个示例程序就可以直接打开该项目。单击左侧的Get Started Now会进入帮助模式,并打开Qt Creator指南,刚接触Qt的同学可以把里面的内容简单看下,当然,帮助中的内容是全英文的。

3.2QT工具介绍

Qt安装好后,主菜单出现如上图目录。这里是Qt提供的几个工具软件。其中Assistant是Qt助手,它已经集成到了QtCreator中,就是帮助模式;Designer是Qt设计师,它也集成到了Qt Creator中,就是设计模式Linguist是Qt语言家,用来对软件进行国际化翻译;下面的Qt 5.5for Desktop可以用来进行命令行操作,比如使用命令行来编译程序等,后续导出exe所需要的dll文件也用到了它的命令操作

4.简单程序案例

这里我们设计一个简单的圆面积计算器。

4.1创建项目

通过“文件->新建文件或项目”出现项目模板。在项目模板中选择Application,然后选择Qt Widgets Application,这样便会生成一个桌面Qt图形界面项目

然后更改项目名称和路径,这里名称可以设置为untitled,注意名称和路径上都不要有中文。如下图所示。

下面设置构建套件,在默认勾选了Desktop构建套件,这个是用来编译桌面版程序的,如下图所示。直接单击“下一步”按钮。

现在显示的是项目的类信息,如下图所示。这里的基类可选的有QMainWindow、QWidget和QDialog三个,QMainWindow是一般桌面程序的主窗口。类名、头文件、源文件等都可以自定义名称,现在默认勾选了创建界面,这样可以使用设计器来设计主界面,这些内容建议都保持默认,直接单击“下一步”按钮。

最后是项目管理界面,这里显示了源码目录和项目中自动添加的文件,还可以设置版本控制系统,不过现在我们没有使用到,所以直接单击“完成”按钮完成项目创建。

4.2完成项目

创建完项目后会进入编辑模式,这里可以对项目文件进行查看和编辑。左侧是项目文件的列表,这里将项目中的文件分为了头文件、源文件、界面文件等进行分类显示。除了显示项目文件,还可以通过下拉菜单来选择类视图、大纲等内容。在右侧就是代码编辑区域,这里对关键字进行了高亮显示。如下图所示。

 单击上方的分栏图标,可以同时显示其他内容,比如这里选择显示“打开文档”和“文件系统”,这时会在项目文件列表下显示出已经打开的文档列表和文件系统,如下图所示。


下面双击界面文件目录下的mainwindow.ui文件,进入设计模式。在这里可以对界面进行可视化设计,也就是所见即所得。左侧是一些常用部件,可以直接拖动到界面上;右侧上方是对象和类列表,下方是部件的属性编辑窗口;在中间,上方是主设计区域,显示了窗口的主界面,下方是Action编辑器以及信号和槽编辑器。

我们从左侧部件列表中找到Display Widgets中的Lable标签,拖动两个到界面上,分别双击改名为“半径:”、“面积:”,并从右侧属性中找到Qframe,frameShape值改为Panel,frameShadow改为Sunken。

 

Buttons中找到 Push Button按钮,拖一个到界面中,双击改名为计算,再从Input Widgets中找到Line Edit,拖两个到界面中。排好界面位置。

之后我们为button按钮添加触发事件,右键“计算”找到转到槽,点击Click()“确定”,添加按按钮后的触发事件。之后会自动跳动至mainwindow.cpp文件中出现void MainWindow::on_pushButton_clicked()的函数定义。

                                           


如下图所示敲如代码

点击运行程序,出现下图。

4.3打包成exe文件

在运行时我们在左侧以Release形式运行之后会在我们建立解决方案的目录下生成一个文件,打开文件找到相应的exe文件双击打开会发现缺少相应的dll文件。

我们用Qt 5.5 for Desktop来解决缺少dll文件问题。首先将exe文件复制到一个新的文件夹,比如a中。之后打开Desktop,用cd/d的命令定义到exe现在所在文件夹:cd/d C:\Users\hasee\Desktop\a。调用windeploy命令加文件名,回车得到很多dll文件如图。这是再看之前的文件夹中已经出现所需要的dll文件,exe文件也可以正常运行了。

以上就是一个简单的界面实现。

5.QT学习推荐

下面列出几个网站和视频供大家学习参考。

http://www.qter.org/forum.php?mod=viewthread&tid=193  这是一个线上的界面开发的教程。

https://www.bilibili.com/video/av34085761 一个QT的网上公开课视频,在B站上也可以搜索到,有c++基础学习是很容易。

 


下一节:C++中的string类

返回《程序设计基础(下)》慕课在线视频列表

程序设计基础(下)课程列表:

拓展学习

-C++的常见错误

--C++的常见错误

-MFC入门

--MFC入门

-STL及使用示例

--STL及使用示例

-算法设计与算法分析基础

--算法设计和算法分析基础

-算法设计基本方法与策略基础

--算法设计基本方法与策略基础

-计算机前沿问题思考

--计算机前沿问题思考

-QT编程入门

--QT编程入门

-C++中的string类

--C++中的string类

-面向对象方法应用实例

--面向对象方法应用实例

-继承与多态应用实例

--继承与多态应用实例

-排序算法

--排序算法

-C++常见问题汇总

--C++常见问题汇总

南开大学往届学长课程学习感悟

-学习感悟(1)

--学习感悟(1)

-学习感悟(2)

--学习感悟(2)

-学习感悟(3)

--学习感悟(3)

-学习感悟(4)

--学习感悟(4)

-2016级数学院同学分享

优秀大作业展示

-优秀大作业展板

第一章 面向对象方法

-1.1面向对象方法的基本概念

--1.1面向对象方法的基本概念

-1.1面向对象方法的基本概念--作业

-1.2 C++中类的定义

--1.2C++中类的定义

-1.2 C++中类的定义

-1.3C++中对象的定义和访问

--1.3C++中对象的定义和访问

-1.3C++中对象的定义和访问--作业

-1.4类成员的访问控制

--1.4类成员的访问控制

-1.4类成员的访问控制--作业

-1.5析构函数

--1.5析构函数

-1.5析构函数--作业

-1.6拷贝构造函数

--1.6拷贝构造函数

-1.6拷贝构造函数--作业

-1.7 类声明与类实现的分离

--1.7 类声明与类实现的分离

-1.7 类声明与类实现的分离--作业

-1.8类的静态成员

--1.8类的静态成员

-1.8类的静态成员--作业

-1.9类的常量成员

--1.9类的常量成员

-1.9类的常量成员--作业

-1.10this指针

--1.10this指针

-1.10this指针--作业

-1.11类的友元

--1.11类的友元

-1.11类的友元--作业

-1.12类的对象成员

--1.12类的对象成员

-1.12类的对象成员--作业

-1.13自定义类的运算符重载

--1.13自定义类的运算符重载

-1.13自定义类的运算符重载--作业

第二章 继承与多态

-2.1 派生类的定义和继承方式

--2.1 派生类的定义和继承方式

-2.1 派生类的定义和继承方式--作业

-2.2 派生类中函数的重定义

--2.2 派生类中函数的重定义

-2.2 派生类中函数的重定义--作业

-2.3派生类的构造函数和析构函数

--2.3派生类的构造函数和析构函数

-2.3派生类的构造函数和析构函数--作业

-2.4多继承

--2.4多继承

-2.4多继承--作业

-2.5多态

--2.5多态

-2.5多态--作业

-2.6抽象类

--2.6抽象类

-2.6抽象类--作业

第三章 输入输出流

-3.1cout和cin对象及插入和提取运算符

--3.1cout和cin对象及插入和提取运算符

-3.1cout和cin对象及插入和提取运算符--作业

-3.2 使用put和get函数进行标准输出和输入

--3.2 使用put和get函数进行标准输出和输入

-3.3使用getline函数进行标准输入

--3.3使用getline函数进行标准输入

-3.3使用getline函数进行标准输入--作业

-3.4 文件流对象

--3.4 文件流对象

-3.5文件流对象及插入和提取运算符

--3.5文件流对象及插入和提取运算符

-3.5文件流对象及插入和提取运算符--作业

-3.6文件流对象及put、get和getline函数

--3.6文件流对象及put、get和getline函数

-3.7按数据块进行输入输出

--3.7按数据块进行输入输出

-3.8按数据块进行输入输出实例

--3.8按数据块进行输入输出实例

-3.8按数据块进行输入输出实例--作业

-3.9文件的随机读写

--3.9文件的随机读写

-3.9文件的随机读写--作业

-3.10用户自定义数据类型的输入输出

--3.10用户自定义数据类型的输入输出

-3.10用户自定义数据类型的输入输出--作业

第四章 模板

-4.1函数模板

--4.1函数模板

-4.1函数模板--作业

-4.2类模板

--4.2类模板

-4.2类模板--作业

第五章 概论

-5.1数据结构基本概念(一)

--5.1数据结构基本概念(一)

-第五章 概论--5.1数据结构基本概念(一)

-5.2数据结构基本概念(二)

--5.2数据结构基本概念(二)

-5.2数据结构基本概念(二)--作业

第六章 线性表

-6.1线性表及其抽象数据类型

--6.1线性表及其抽象数据类型

-6.1线性表及其抽象数据类型--作业

-6.2顺序表类模板

--6.2顺序表类模板

-6.2顺序表类模板--作业

-6.3顺序表的实现

--6.3顺序表的实现

-6.3顺序表的实现--作业

-6.4简单数据元素顺序表的应用问题

--6.4简单数据元素顺序表的应用问题

-6.4简单数据元素顺序表的应用问题--作业

-6.5复杂数据元素顺序表的应用问题

--6.5复杂数据元素顺序表的应用问题

-6.5复杂数据元素顺序表的应用问题--作业

-6.6单向链表及其类模板

--6.6单向链表及其类模板

-6.6单向链表及其类模板--作业

-6.7单项链表的实现(一)

--6.7单项链表的实现(一)

-6.7单项链表的实现(一)--作业

-6.8单项链表的实现(二)

--6.8单项链表的实现(二)

-6.8单项链表的实现(二)--作业

-6.9单向链表的应用

--6.9单向链表的应用

-6.10循环链表及双向链表

--6.10循环链表及双向链表

第七章 栈和队列

-7.1栈及顺序栈

--7.1栈及顺序栈

-7.1栈及顺序栈--作业

-7.2 顺序栈的实现

--7.2 顺序栈的实现

-7.2 顺序栈的实现--作业

-7.3顺序栈的应用

--7.3顺序栈的应用

-7.4 链接栈及其实现

--7.4 链接栈及其实现

-7.4 链接栈及其实现--作业

-7.5队列及其顺序存储

--7.5队列及其顺序存储

-7.5队列及其顺序存储--作业

-7.6 顺序循环队列的实现

--7.6 顺序循环队列的实现

-7.6 顺序循环队列的实现--作业

-7.7顺序循环队列的应用

--7.7顺序循环队列的应用

-7.8链接队列及其实现

--7.8链接队列及其实现

-7.8链接队列及其实现--作业

第八章 树和二叉树

-8.1树的基本概念

--8.1树的基本概念

-8.1树的基本概念--作业

-8.2二叉树及其性质

--8.2二叉树及其性质

-8.2二叉树及其性质--作业

-8.3二叉树的抽象数据类型和顺序表示

--8.3二叉树的抽象数据类型和顺序表示

-8.3二叉树的抽象数据类型和顺序表示--作业

-8.4二叉树的链式表示

--8.4二叉树的链式表示

-第八章 树和二叉树--8.4二叉树的链式表示

-8.5二叉链表的实现(一)

--8.5二叉链表的实现(一)

-8.6二叉链表的实现(二)先序和中序遍历

--8.6二叉链表的实现(二)先序和中序遍历

-8.6二叉链表的实现(二)先序和中序遍历--作业

-8.7二叉链表的实现(三)后序和逐层遍历

--8.7二叉链表的实现(三)后序和逐层遍历

-8.7二叉链表的实现(三)后序和逐层遍历--作业

-8.8二叉链表的实现(四)

--8.8二叉链表的实现(四)

-8.9 二叉排序树

--8.9 二叉排序树

-8.10哈夫曼树和哈夫曼编码

--8.10哈夫曼树和哈夫曼编码

第九章 图

-9.1图的基本概念及其特征

--9.1图的基本概念及其特征

-9.1图的基本概念及其特征--作业

-9.2图的抽象数据类型和表示方式

--Video

-9.2图的抽象数据类型和表示方式--作业

-9.3图的邻接矩阵表示法的实现

--9.3图的邻接矩阵表示法的实现

-9.3图的邻接矩阵表示法的实现--作业

-9.4图的广度优先遍历

--Video

-9.4图的广度优先遍历--作业

-9.5图的深度优先遍历

--9.5图的深度优先遍历

-9.5图的深度优先遍历--作业

-9.6图的应用

--9.6 图的应用

例题及视频讲解

-面向对象方法

--面向对象例题讲解

-- 类和对象的基本定义、构造函数和析构函数

--静态成员和多文件结构

--友元和运算符重载

--对象成员

-继承与多态

--派生类定义和函数重定义

--多重继承

--虚函数

--抽象类和纯虚函数

-输入输出流

--输入输出流操作

--插入运算符和提取运算符重载

-模板

--函数模板

--类模板

百年南开 风华正茂

-央视新闻关于南开大学的报道

百年沧桑到民族复兴

-从百年沧桑到民族复兴1

-从百年沧桑到民资复兴2

-从百年沧桑到民族复兴3

-从百年沧桑到民族复兴4

-从百年沧桑到民族复兴5

QT编程入门笔记与讨论

也许你还感兴趣的课程:

© 柠檬大学-慕课导航 课程版权归原始院校所有,
本网站仅通过互联网进行慕课课程索引,不提供在线课程学习和视频,请同学们点击报名到课程提供网站进行学习。