- 博客(29)
- 收藏
- 关注
原创 Qt 第34课、缓冲区操作与目录操作
1、缓冲区操作Qt 中缓冲区的概念— 缓冲区的本质为一段连续的存储空间(字节数组代表连续存储空间)— QBuffer 是 Qt 中缓冲区相关的类— 在 Qt 中可以将缓冲区看做一种特殊的 IO 设备— 文件流辅助类可以直接用于操作 缓冲区QBuffer 缓冲区的使用方式QBuffer 缓冲区的使用场合1、在线程间进行不同类型的数据传递2、缓存外部设备中的数据返回3、数据读取速度小于数据写入速度2、目录操作QDir 是 Qt 中功能强大的目录操作类— Qt 中的目录分隔符统一
2023-03-16 14:20:13
556
原创 Qt 第36课、文本编辑器中的功能交互
思考:如何判断是否存在未保存的数据?1、QPlainTextEdit 中的信号QPlainTextEdit 能够触发与编辑操作相关的信号解决方案1、定义槽函数 void onTextChanged()2、映射 textChanged() 到槽函数3、定义成员变量 bool m_isTextChanged = false;4、文本框中的字符发生变化时, m_isTextChanged = true;5、当 m_isTextChanged 为真,则存在未保存的数据小结:文本编辑组件
2023-03-16 14:18:38
550
原创 Qt 第35课、文本编辑器中的数据存取
1、QAction 的信号QAction 被点击之后会产生一个 triggered 信号— 通过信号与槽的机制能够捕捉对 QAction 对象的操作— 项目中可以将多个信号映射到同一个槽函数文件打开操作文件保存操作文件另存为操作思考:如何判断是否存在为保存的数据?小结Qt 项目中尽量将界面代码和功能代码分离开Qt 项目开发时尽量复用平台提供的相关组件Qt 项目中的多数情况都是编写相应的槽函数— 槽函数用于相应用户操作— 槽函数是具体功能的触发点...
2023-03-16 14:18:29
325
原创 Qt 第33课、文本流和数据流
1、文件类型Qt 中将文件类型分为两大类— 文本文件:文件内容是可读的文本字符— 数据文件:文件内容是直接的二进制数据我们知道,QFile 直接支持文本文件和数据文件的读写思考:如何将一个浮点数据写入文本文件和数据文件?程序:#include <QCoreApplication>#include <QFile>#include <QDebug>int main(int argc, char *argv[]){ QCoreApplica
2023-03-16 14:18:07
499
原创 Qt 第32课、Qt 中的文件操作
文本编辑器涉及到文本的保存和文本的读取,所以今天学习 Qt 中的文件操作。1、Qt 中的 IO 操作Qt 中 IO操作的处理方式— Qt 通过统一的接口简化了文本与外部设备的操作方式— Qt 中的文件被看作一种特殊的外部设备— Qt 中的文件操作与外部设备的操作相同IO 操作中的关键函数接口IO 操作的本质:连续存储空间的数据读写Qt 中 IO 设备的类型— 顺序存...
2023-03-16 14:17:47
390
原创 Qt 第30课、Qt 中的文本编辑组件
1、文本编辑组件Qt 中支持三种常用的文本编辑组件— QLineEdit :单行文本编辑组件— QTextEdit :多行富文本编辑组件— QPlainTextEdit :多行普通文本编辑组件Qt 中常用文本编辑组件的继承层次图不同文本组件的特性比较Qt 中常用文本编辑组件的内置功能...
2023-03-15 09:55:29
327
1
原创 Qt 第29课、主窗口中的状态栏
1、主窗口中的状态栏状态栏的概念和意义— 状态栏是应用程序中输出简要信息的区域— 状态栏一般位于主窗口的最底部— 状态栏的消息类型 实时消息:如(当前程序状态) 永久消息:如(程序版本号,机构名称) 进度消息:如(进度条提示,百分比提示)在 Qt 中提供与状态栏相关的类组件在 Qt 主窗口中创建状态栏Qt 状态栏的设计原则— 左边的区域用于输出实时消息— 右边的区域用...
2023-03-15 09:55:12
1984
1
原创 Qt 第28课、主窗口中的工具栏
1、主窗口中的工具栏工具栏的概念和意义— 应用程序中 集成各种功能 实现快捷使用的一个区域— 工具栏并不是应用程序中必须存在的组件— 工具栏中的元素可以是各种窗口组件— 工具栏中的元素通常以图标按钮的方式存在在 Qt 中提供与工具栏相关的类组件在 Qt 主窗口中创建工具栏QToolBar 的关键成员函数— void setFloatable(bool floa...
2023-03-15 09:54:59
949
1
原创 Qt 第26课、布局管理综合实例
需求分析:(练习开发一个向导用户界面)— 在同一个界面上展示不同的向导页面— 通过 上一步 和 下一步 按钮进行切换— 不同页面上的 元素组件 和 组件排布 都不相同— 页面中的组件通过布局管理器进行排布解决方案(通过布局嵌套进行界面设计)通过 QStackLayout 管理不同的页面通过子组件的方式生成不同的页面...
2019-12-16 19:43:14
269
原创 Qt 第25课、布局管理器(四)QStackedLayout
1、最特别的布局管理器栈式布局管理器(QStackedLayout)— 所有组件在垂直于屏幕的方向上被管理— 每次只有一个组件会显示在屏幕上— 只有最顶层的组件会被最终显示栈式布局管理器的特点— 组件大小一致且充满父组件的显示区— 不能直接嵌套其它布局管理器— 能够自由切换需要显示的组件— 每次能且仅能显示一个部件QStackedLayout 的用法概要— in...
2019-12-16 17:29:46
574
原创 Qt 第24课、布局管理器(三)QFormLayout
思考:如何设计下面的用户图形界面?解决方案— 绝对定位组件的坐标和大小— 嵌套 QBoxLayout— 创建 3*2的 QGridLayoutwidget.h#ifndef WIDGET_H#define WIDGET_H#include <QWidget>#include <QPushButton>#include <QLabel&g...
2019-12-16 12:25:52
343
原创 Qt 第23课、布局管理器(二)QGridLayout
1、布局管理器布局管理器中的比例系数— 默认情况下以等比例的方式更新组件的大小— 可以自定义组件大小更新时的比例系数
2019-12-11 22:27:06
764
原创 Qt 第22课、布局管理器(一)QBoxLayout
1、布局管理器(layout:布局)— 能够自动排列窗口中的界面组件— 窗口变化后自动更新界面组件的大小QLayout 是 Qt 中布局管理器的抽象基类通过继承QLayout 实现功能各异且互补的布局管理器Qt 中可以根据需要自定义布局管理器布局管理器不是界面组件,而是界面部件的定位策略(在界面中不可见,是窗口的帮手)2、介绍QBoxLayout 布局管理器— 以水平或垂直的...
2019-12-11 20:19:09
792
原创 Qt 第21课、Qt 中的标准对话框(下)字体、进度、打印
1、字体对话框Qt 提供了预定义的字体对话框 QFontDialog 类QFontDialog类用于提供选择字体的对话框部件字体对话框的使用方式程序:Widget.h#ifndef WIDGET_H#define WIDGET_H#include <QWidget>#include <QPushButton>#include <QDebu...
2019-12-11 19:05:38
203
原创 Qt 第20课、Qt 中的标准对话框(中)颜色、输入
1、颜色对话框Qt 中提供了预定义的颜色对话框 QColorDialog 类QColorDialog 类用于提供指定颜色的对话框部件颜色对话框的使用方式Qt 中的 QColor 类用来在程序中表示颜色的概念QColor 类同时支持多种颜色的表达方式— RGB:以红绿蓝为基准的三色模型— HSV:以色调、饱和度、明度为基准的六角椎体模型— CMKY:以天蓝、品红、黄色、黑为基准...
2019-12-11 16:23:16
548
原创 Qt 第19课、Qt 中的标准对话框(上)消息、文件
标准对话框Qt 为开发者提供了一些可复用的对话框类型Qt 提供的可复用对话框全部继承自 QDialog 类Qt 中的标准对话框遵循相同的使用方式1、消息对话框(QMessageBox)消息对话框是应用程序中最常见的界面元素消息对话框主要用于:— 为用户提供重要消息— 强制用户进行操作选择Qt 有一个函数封装了上面图片的五个函数,那就是在 QMessageBox 的...
2019-12-11 10:54:12
190
原创 Qt 第18课、登录对话框实例分析
思考:如何开发一个可以在不同项目间复用的登陆对话框?1、登陆对话框登陆对话框需求分析— 可复用软件部件— 获取用户名和密码附加需求— 随机验证码登陆对话框的设计和架构...
2019-12-11 10:44:48
216
原创 Qt 第17课、对话框及其类型
1、对话框的概念对话框是与用户进行简短交互的顶层窗口QDialog 是 Qt 中所有对话框窗口的基类QDialog 继承于 QWidget 是一种容器类型组件QDialog 的意义— QDialog 作为一种专用的交互窗口而存在— QDialog 不能作为子部件嵌入到其它容器中— QDialog 是定制了窗口样式的特殊的 QWidget疑惑:既然继承于 QDialog 窗口类...
2019-12-10 17:26:54
198
原创 Qt 第16课、Qt 对象间的父子关系
1、Qt 对象间的关系Qt 对象间可以存在父子关系— 每一个对象都保存有它所有子对象的指针— 每一个对象都有一个指向其父对象的指针当指定Qt 对象的父对象时— 其父对象会在子对象链表中加入该对象的指针— 该对象会保存指向其父对象的指针#include <QCoreApplication>#include <QDebug>void fcTest()...
2019-12-10 17:23:54
531
原创 Qt 第7课、用户界面与业务逻辑的分离
1、磁盘分区磁盘分区是使用分区编辑器在磁盘上划分几个逻辑部分。碟片一旦划分成数个分区,不同类的目录与文件可以存储进不同的分区。分区类型:主分区:最多只能有四个扩展分区1、最多只能有一个2、主分区加扩展分区最多有4个3、不能写入数据,只能包含逻辑分区逻辑分区:可以正常写入数据和格式化2、格式化格式化(高级格式化)又称逻辑格式化,它是指根据用户选定的文件系统,在磁盘的特定区域写...
2019-12-06 22:38:21
3223
4
原创 Qt 第6课、计算器算法
1、计算器分离算法计算器分离算法的意义在于把一串我们写成的表达式进行数字和运算符的分离,主要难点在于如何区分正负号和加减号。满足以下几个特征都是正负号:1、+、- 号在表达式的第一个位置2、括号后面的+、- 号3、运算符后面的+、- 号...
2019-12-05 15:02:43
447
原创 Qt 第5课、Qt 中的数据结构类
1、C++中的queue实现一种 先进先出 的数据结构,是一个模板类。头文件 #include <queue>用法 ( 以 int 型为例 ):queue<int> Q; //定义一个int型队列Q.empty(); //返回队列是否为空Q.size(); ...
2019-12-05 10:13:31
958
原创 Qt 第4课、Qt 中的字符串类
1、标准库STLSTL 是意义上需要与C++ 一同发布的标准库STL 是一套以模板技术完成的 C++类库STL 中包含了常用的算法和数据结构STL 包含了字符串类2、Qt 和STLSTL 的具体实现依赖于编译器生产厂商STL 的 "标准"只是其接口是标准的— 相同的全局函数— 相同的算法类和数据结构类— 相同的类成员函数不同厂商的编译器所带的 STL 存在差异— 依赖...
2019-12-04 22:05:02
176
原创 Qt 第2课、Qt 中的坐标系统
1、QWidget 类中的坐标系统成员函数— x() //边框的起始点横坐标— y() //边框的起始点纵坐标— width() //客户区终点的横坐标— height() //客户区终点的纵坐标— geometry() //客户区 x(),y(),width(),height() — frameGeometry() //边框 x(),y(),widt...
2019-12-04 10:31:06
295
原创 Qt 第1课、Qt 的窗口组件和窗口类型
1、窗口组件图形用户界面由不同的窗口和窗口组件组成Qt 以组件对象的方式构件图形用户界面组件的类型— 容器类(父组件):用于包含其它的界面组件— 功能类(子组件):用于实现特定的交互功能Qt 中没有父组件的顶级组件叫做窗口QWidget 继承于 QObject 和 QPaintDevice— QObject 是所有支持 Qt 对象模型的基类—...
2019-11-27 22:44:49
866
1
原创 Qt 中的QString
1、Qt中的字符串类介绍— 采用Unicode编码— 采用隐式共享技术,节省内存和不必要的数据拷贝 隐式共享介于浅拷贝和深拷贝之间,当两个string对象赋值时,会实现浅拷贝(共享一块内存),如果某个对象被修改了,则会实现深拷贝(从新开辟内存)— 跨平台使用,不需要考虑不同平台的兼容性1、QString直接支持字符串与数字的相互转换2、QString直接支持字符串大小比较3、...
2019-11-23 09:58:14
1886
原创 Qt 基本入门知识点
1、QApplication 应用程序类QApplication a;a.exec(); //让程序一直执行,等待用户操作 //等待事件的发生2、QWidget是一个窗口基类,Widget 翻译为控件3、窗口创建默认是隐藏的,需要人为显示,MYWidget w; //MYWidget 继承于 QWidget 窗口基类w.show(); ...
2019-11-22 21:48:05
353
原创 GUI (图形界面)程序原理分析
1、命令行应用程序命令行应用程序的特点— 是一种基于顺序执行结构的可执行程序— 程序执行过程中不需要与用户产生交互— 程序执行后给出最终的运行结果gcc a.c b.c c.c编译过程中不产生用户交互,编译结束后或者生成可执行程序或者给出错误信息命令行应用程序的运行模式(如下图)特点:程序的运行有固定的开始和固定的结束命令行应用程序适用场合— 单任务场合— 无...
2019-11-22 21:46:52
2382
原创 Qt 的第一个的错误:Could not create directory
初次接触QT,使用QT写了一个窗口程序,写完之后点击运行按钮,却发现没有任何反应。虽然点击运行一点反应都没有,但是在QT的编译输出中出现了错误Could not create directory “D:\Codes\Qt\Error in " Util.asciify(“build-untitled6-Desktop_Qt_5_5_1_MSVC2010_32bit-Debug”)”: TypeE...
2019-09-26 12:07:09
1779
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人