目录
- 去哪下载
- 安装过程
- 新建一个项目
- Qt项目界面文件(.ui)及其作用(超详细)
- Qt界面布局管理详解
- Qt信号与槽机制详解
- Qt全局变量、函数和宏定义详解
- 顺序容器类
- Qt迭代器(Java类型和STL类型)详解
- Qt字符串与数字之间的转换方法详解
- Qt数值输入组件和显示组件用法详解
- Qt获取当前时间(超详细)
- Qt定时器及实现(详解)
- 下面介绍常用组件
- Qt 5种标准对话框及使用方法详解![在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/299fde27b0e3fc6fcbff4a03489f9b2a.png)
- Qt多窗口编程详解![在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/0c0bacf7da7cc94f346deeaea99fd8db.png)
- Qt MDI及其使用方法(详解版)
- Qt Splash窗口设计(代码)实现详解
- Qt读写文件(2种方式)实现详解
去哪下载
http://download.qt.io/
http://c.biancheng.net/view/3851.html
安装过程
http://c.biancheng.net/view/3858.html
新建一个项目
Qt Widgets Application,支持桌面平台的有图形用户界面(Graphic User Interface,GUI) 界面的应用程序。GUI 的设计完全基于 C++ 语言,采用 Qt 提供的一套 C++ 类库。
1.QMainWindow 是主窗口类,主窗口具有主菜单栏、工具栏和状态栏,类似于一般的应用程序的主窗口;
2.QWidget 是所有具有可视界面类的基类,选择 QWidget 创建的界面对各种界面组件都可以支持;
3.QDialog 是对话框类,可建立一个基于对话框的界
在此选择 QMainWindow 作为基类,自动更改的各个文件名不用手动去修改
http://c.biancheng.net/view/1817.html
Qt项目界面文件(.ui)及其作用(超详细)
UI 设计器Qt Designer
为 btnClose 按钮增加一个功能,就是单击此按钮时,关闭窗口,退出程序。使用 Signals 和 Slots 编辑器完成这个功能,如图 4 所示。信号 clicked(bool) 会将 CheckBox 组件当前的选择状态作为一个参数传递,在响应代码里可以直接利用这个传递的参数
http://c.biancheng.net/view/1820.html
Qt界面布局管理详解
界面组件的层次关系
为了将界面上的各个组件的分布设计得更加美观,经常使用一些容器类,如 QgoupBox、QtabWidget、QFrame 等。
例如,将 3 个 CheckBox 组件放置在一个 GroupBox 组件里,该 GroupBox 组件就是这 3 个 CheckBox 的容器,移动这个 GroupBox 就会同时移动其中的 3 个 CheckBox。
采用 UI 设计器设计了窗体界面,采用可视化和程序化的方式设计槽函数,设计信号与槽函数之间的关联。
http://c.biancheng.net/view/1822.html
Qt信号与槽机制详解
信号(Signal)就是在特定情况下被发射的事件,例如PushButton 最常见的信号就是鼠标单击时发射的 clicked() 信号,一个 ComboBox 最常见的信号是选择的列表项变化时发射的 CurrentIndexChanged() 信号。
槽(Slot)就是对信号响应的函数。槽就是一个函数,与一般的C++函数是一样的,可以定义在类的任何部分(public、private 或 protected),可以具有任何参数,也可以被直接调用。槽函数与一般的函数不同的是:槽函数可以与一个信号关联,当信号被发射时,关联的槽函数被自动执行。
QObject::connect(btnClose, SIGNAL(clicked()), Widget, SLOT(close()));
其作用就是将 btnClose 按钮的 clicked() 信号与窗体(Widget)的槽函数 close() 相关联
一个信号可以连接多个槽:比如两个槽 addFun()用于计算,一个 updateStatus() 用于更新状态
多个信号可以连接同一个槽:比如三个选择颜色的 RadioButton的clicked() 信号关联到相同的一个自定义槽函数 setTextFontColor()
一个信号可以连接另外一个信号
http://c.biancheng.net/view/1823.html
Qt全局变量、函数和宏定义详解
头文件包含了 Qt 类库的一些全局定义,包括基本数据类型、函数和宏,一般的 Qt 类的头文件都会包含该文件,所以不用显式包含这个头文件也可以使用其中的定义。
表 1 Qt 中的数据类型定义
Qt 数据类型 等效定义 字节数
qint8 signed char 1
qint16 signed short 2
qint32 signed int 4
qint64 long long int 8
qlonglong long long int 8
quint8 unsigned char 1
quint16 unsigned short 2
quint32 unsigned int 4
quint64 unsigned long long int 8
qulonglong unsigned long long int 8
uchar unsigned char 1
ushort unsigned short 2
uint unsigned int 4
ulong unsigned long 8
qreal double 8
qfloat16 2
表 2 中常用的全局函数定义
函数 功能
T qAbs(const T &value) 返回变量 value 的绝对值
const T &qBound(const T &min, const T&value, const T &max) 返回 value 限定在 min 至 max 范围之内的値
bool qFuzzyComparc(doublc p1, double p2) 若 p1 和 p2 近似相等,返回 true
bool qFuzzyIsNulI(double d) 如果参数 d 约等于 0,返回 true
double qInf(() 返回无穷大的数
bool qIsFinite(double d) 若 d 是一个有限的数,返回 true
bool qIsInf(double d) 若 d 是一个无限大的数,返回 true
bool qIsNaN(double d) 若 d 不是一个数,返回 true
constT&qMax(const T&value1, const T&value2) 返回 value1 和 value2 中较大的值
const T &qMin(const T&value1, const T&value2) 返回 value1 和 value2 中较小的值
qint64 qRound64(double value) 将 value 近似为最接近的 qint64 整数
int qRound(double value) 将 value 近似为最接近的 int 整数
int qrand() 标准 C++ 中 rand() 函数的线程安全型版本,返回 0 至 RAND_MAX 之间的伪随机数
void qsrand(uint seed) 标准 C++ 中 srand() 函数的线程安全型版本,使用种子 seed 对伪随机数字序列初始化
在debugger窗体显示信息:
qDebug(“Items in list: %d”, myList.size());
http://c.biancheng.net/view/1827.html
顺序容器类
Qt 的顺序容器类有 QList、QLinkedList、QVector、QStack 和 QQueue。
vector类似数组list类似链表(其他网站)
遍历方法//下标法(vector的特有访问方法,一般容器只能通过迭代器访问) (其他网站)
QList
QList 是最常用的容器类,虽然它是以数组列表的形式实现的,但是在其前或后添加数据非常快,QList 以下标索引的方式对数据项进行访问。
QList 用于添加、插入、替换、移动、删除数据项的函数有:insert()、replace()、removeAt()、move()、swap()、append()、prepend()、removeFirst() 和 removeLast() 等。
QList 提供下标索引方式访问数据项,如同数组一样,也提供 at() 函数,例如:
QList list;
list << “one” << “two” << “three”;
QString str1=list[1]; //str1==“two”
QString str0=list.at(0); //str0==“one”
QList 的 isEmpty() 函数在数据项为空时返回 true,size() 函数返回数据项的个数。
QVector
QVector 提供动态数组的功能,以下标索引访问数据。
QVector 的函数接口与 QList 几乎完全相同,QVector 的性能比 QList 更高,因为 QVector
的数据项是连续存储的。
QStack
QStack 是提供类似于堆栈的后入先出(LIFO)操作的容器类,push() 和 pop() 是主要的接口函数。例如:
1.QStack stack;
2.stack.push(10);
3.stack.push(20);
4.stack.push(30);
5.while (!stack.isEmpty())
6. cout << stack.pop() << endl;
程序会依次输出 30, 20, 10。
QQueue
QQueue 是提供类似于队列先入先出(FIFO)操作的容器类。enqueue() 和 dequeue() 是主要操作函数。例如:
1.QQueue queue;
2.queue.enqueue (10);
3.queue.enqueue(20);
4.queue.enqueue (30);
5.while (!queue.isEmpty())
6. cout << queue.dequeue() << endl;
程序会依次输出 10, 20,30。
http://c.biancheng.net/view/1831.html
Qt迭代器(Java类型和STL类型)详解
for循环和迭代器是两个不同的层面。你可以使用for,while或者do while来遍历一个容器,这三者是一个层面的。
你在遍历一个容器的时候如果容器不提供下标访问方式,就需要使用迭代器来访问元素。(其他网站)
Java 类型的迭代器更易于使用,且提供一些高级功能,而 STL 类型的迭代器效率更高。
Java 类型迭代器
下面是遍历访问一个 QList 容器的所有数据项的典型代码:
1.QList list;
2.list << “A” << “B” << “C” << “D”;
3.QListIterator i (list);
4.while (i.hasNext())
5. qDebug () << i.next ();
STL类型迭代器
顺序容器类的迭代器的用法
下面的示例代码将 QList list 里的数据项逐项输出:
1.QList list;
2.list << “A” << “B” << “C” << “D”;
3.QList::const_iterator i;
4.for (i = list.constBegin(); i != list.constEnd(); ++i)
5. qDebug() << *i;
constBegin() 和 constEnd() 是用于只读迭代器的,表示起始和结束位置。
http://c.biancheng.net/view/1839.html
Qt字符串与数字之间的转换方法详解
QString 类从字符串转换为整数
QString 将字符串转换为浮点数
进制转换
http://c.biancheng.net/view/1843.html
Qt QString类及常用函数功能详解
append() 在字符串的后面添加字符串,prepend() 在字符串的前面添加字符串
count()、size() 和 length() 都返回字符串的字符个数
http://c.biancheng.net/view/1844.html
Qt QSpinBox使用详解
QSpinBox 用于整数的显示和输入,一般显示十进制数,也可以显示二进制、十六进制的数,而且可以在显示框中增加前缀或后缀。
QDoubleSpinBox 用于浮点数的显示和输入,可以设置显示小数位数,也可以设置显示的前缀和后缀。
http://c.biancheng.net/view/1845.html
Qt数值输入组件和显示组件用法详解
在这个实例中,用到如下一些组件:
QSlider:滑动条,通过滑动来设置数值,可用于数值输入。
QScrollBar:卷滚条,与 QSlider 功能类似,还可以用于卷滚区域。
QProgressBar:进度条,一般用于显示任务进度,可用于数值的百分比显示。实例程序中滑动一个Slider,获取其值并更新ScrollBar和ProgressBar。
QDial:表盘式数值输入组件,通过转动表针获得输入值。
QLCDNumber:模仿 LCD 数字的显示组件,可以显示整数或浮点数,显示整数时可以不同进制显示
http://c.biancheng.net/view/1846.html
Qt获取当前时间(超详细)
http://c.biancheng.net/view/1847.html
Qt定时器及实现(详解)
可以不用QTime fTimeCounter;//计时器
fTimer=new QTimer(this);得改成QTimer * fTimer=new QTimer(this);
http://c.biancheng.net/view/1848.html
下面介绍常用组件
Qt QComboBox下拉框及用法(详解版)
QComboBox 是下拉列表框组件类,它提供一个下拉列表供用户选择,也可以直接当作一个 QLineEdit 用作输入
http://c.biancheng.net/view/1849.html
Qt QPlainTextEdit用法详解
QPlainTextEdit 是一个多行文本编辑器,用于显示和编辑多行简单文本
http://c.biancheng.net/view/1852.html
Qt QListWidget和QToolButton用法详解(实例分析)
Qt 中用于项(Item)处理的组件有两类,一类是 Item Views,包括 QListView、QTreeView、 QTableView、QColumnView 等;另一类是 Item Widgets,包括 QListWidget、QTreeWidget 和 QTable Widget。
http://c.biancheng.net/view/1854.html
Qt QTreeWidget和QDockWidget用法完全攻略(实例分析)
本节介绍QTreeWidget、QDockWidget的使用,以及用 QLabel 显示图片的方法。实例 samp4_8 QTreeWidget 以 QTreeWidget 为主要组件,创建一个照片管理器,实例运行时的界面如图 1 所示。
http://c.biancheng.net/view/1862.html
Qt QTableWidget及基本操作(详解版)
QTableWidget 是 Qt 中的表格组件类。在窗体上放置一个 QTableWidget 组件后,可以在 Property Editor 里对其进行属性设置,双击这个组件,可以打开一个编辑器,对其 Colum、Row 和 Item 进行编辑。
http://c.biancheng.net/view/1863.html
Qt QFileSystemModel功能及用法详解
QFileSystemModel 提供了一个可用于访问本机文件系统的数据模型。
QFileSystemModel 和视图组件 QTreeView 结合使用,可以用目录树的形式显示本机上的文件系统,如同 Widnows 的资源管理器一样。使用 QFileSystemModel 提供的接口函数,可以创建目录、删除目录、重命名目录,可以获得文件名称、目录名称、文件大小等参数,还可以获得文件的详细信息。
http://c.biancheng.net/view/1865.html
Qt 5种标准对话框及使用方法详解
http://c.biancheng.net/view/1870.html
Qt多窗口编程详解
http://c.biancheng.net/view/1874.html
Qt MDI及其使用方法(详解版)
传统的应用程序设计中有多文档界面(Multi-document Interface,MDI)应用程序,Qt 为设计 MDI 应用程序提供了支持。
http://c.biancheng.net/view/1875.html
Qt Splash窗口设计(代码)实现详解
一般的大型应用程序在启动时会显示一个启动画面,即 Splash 窗口。
Splash 窗口是一个无边对话框,一般显示一个图片,展示软件的信息。Splash 窗口显示时,程序在后台做一些比较耗时的启动准备工作,Splash 窗口显示一段时间后自动关闭,然后软件的主窗口显示出来。
http://c.biancheng.net/view/1876.html
Qt读写文件(2种方式)实现详解
QFile读写文本文件
QFile和QTextStream结合读写文本文件
http://c.biancheng.net/view/1877.html
Qt二进制文件操作(读和写)详解
保存为dat文件
读取dat文件
http://c.biancheng.net/view/1879.html