QT
文章平均质量分 83
码农小李。x17355150737
我的薇:x17355150737
展开
-
第19课 QT中的标准对话框(上)
1、标准对话框 1.1、 Qt为开发中提供了一下可复用的对话框类型 1.2、 Qt提供的可复用对话框类型全部继承自QDialog类 1.3、 Qt中的标准对话框遵循相同的使用方式 2、消息对话框 2.1、 消息对话框是程序中最常用的界面元素 2.2、 消息对话框主要用于 2.2.1、 为用户提示重要信息 ...原创 2018-03-17 08:21:40 · 226 阅读 · 0 评论 -
第29课 主窗口中的状态栏
1、主窗口中的状态栏 1.1、 状态栏的概念和意义 1.1.1、 状态栏是应用程序中输出简要信息的区域 1.1.2、 状态栏一般位于主窗口的最底部 1.1.3、 状态栏中的消息类型 A、 实时消息:如当前程序状态 B、 永久消息:如程序版本号,机构名称 C、 进度消息:如进度条提示,百分百提示 1.2、 Qt提供了与状态栏...原创 2018-03-21 20:49:04 · 225 阅读 · 0 评论 -
第30课 Qt中的文本编辑组件
1、文本编辑组件 1.1、 Qt支持三种常用的文本编辑组件 1.1.1、 QLineEdit:单行文本编辑组件 1.1.2、 QPlainTextEdit:多行普通文本编辑组件 1.1.3、 QTextEdit:多行富文本(有图片、视频等)编辑组件 1.2、 Qt中常用文本编辑组件的继承层次图(继承层数越多的往往越强大。) ...原创 2018-03-22 08:51:38 · 355 阅读 · 0 评论 -
第42课 文本打印与光标定位
1、文本编辑器中的打印 1.1、 QPlainTextEdit内部的文档结构 1.1.1、 QPlainTextEdit通过QTextDocument对象存储文本数据 1.1.2、 QPlainTextEdit本身只负责界面形态的显示 1.1.3、 QPlainTextEdit内部有指针指向下面两个类 1...原创 2018-04-01 16:13:55 · 208 阅读 · 0 评论 -
第34课 缓冲区操作与目录操作
1、缓冲区操作 1.1、 Qt中缓冲区的概念 1.1.1、 缓冲区的本质为一段连续的存储空间 1.1.2、 QBuffer是qt中缓冲区相关的类 1.1.3、 在Qt中可以将缓冲区看做是一种特殊的IO设备 1.1.4、 文件流辅助类(上节课那些)可以直接用于操作缓冲区 1.2、 QBuffer的使用方式 ...原创 2018-03-26 20:43:33 · 182 阅读 · 0 评论 -
第43课 发送自定义事件(上)
1、在程序中发送事件 1.1、 Qt可以在程序中自主发送事件 1.1.1、 堵塞型事件发送 A、 事件发送完后需要等待事件处理完成 1.1.2、 非堵塞型事件发送 A、 事件发送后立即返回 B、 事件被发送到事件队列中等待处理 1.2、 QApplication类提供了支持事件发送的静态成员函...原创 2018-04-01 22:03:18 · 166 阅读 · 0 评论 -
第35课 文本编辑器中数据存取
1、QAction的信号 1.1、 QAction被点击之后会产生一个triggered信号 1.1.1、 通过信号与槽的机制能够捕捉对QAction对象的操作 1.1.2、 项目中可以将多个信号映射到同一个槽函数 2、文件的打开,保存,另存为操作 2.1、 文件的打开操作 2.2、 文件的保存操作 ...原创 2018-03-27 11:15:23 · 184 阅读 · 0 评论 -
第44课 发送自定义事件(下)
1、自定义事件对象 1.1、 Qt可以自定义新的事件类 1.1.1、 自定义的事件类必须继承自QEvent 1.1.2、 自定义的事件类必须拥有全局唯一的Type值(event->type()可以获得事件的类型) 1.1.3、 程序中必须提供处理自定义事件的方法 1.2、 自定义事件类 1.2.1、 将QEvent作为父类继...原创 2018-04-02 13:33:03 · 157 阅读 · 0 评论 -
第65课 深入浅出信号与槽
1、 Qt中信号(SIGNAL)的本质 1.1、 信号只是一个特殊的成员函数声明 1.1.1、 函数的返回值是void类型 1.1.2、 函数只能声明不能定义(实际上定义的部分是由moc自动生成的) 1.2、 信号必须使用signals关键字进行声明 1.2.1、 函数的访问属性自动被设置为protected(即#de...原创 2018-04-02 15:34:01 · 193 阅读 · 0 评论 -
第72课 进程与线程的概念
一、进程的概念 什么是程序? 什么是进程? 程序和进程有什么关系? 1、 程序是计算机存储系统中的文件数据 1.1、 源代码:文本文件,描述程序的行为和功能 1.2、可执行程序:二进制文件,直接加载并执行 2、进程的概念 2.1、 广义概念:程序关于某个数据集合的运行活动 ...原创 2018-04-02 20:11:43 · 189 阅读 · 0 评论 -
第73课 Qt中的多线程编程
一、Qt中的多线程编程 1、 Qt通过QThread直接支持多线程 1.1、 QThread是一个跨平台的多线程解决方案 1.2、 QThread以简洁易用的方式实现多线程编程 1.3、 注意 A、 Qt中的线程以对象的形式被创建和使用 B、 每一个线程对应着一个QThread对象 ...原创 2018-04-02 22:15:31 · 282 阅读 · 0 评论 -
第74课 多线程间的同步
一、多线程间的同步 1、 多线程编程的本质 1.1、 并发性是多线程编程的本质 1.2、 在宏观上,所有线程并行执行 1.3、 多个线程间相互独立,互不干涉 2、 特殊情况下,多线程存在依赖 煮菜和煮饭这两个线程结束后,才能进行吃饭的线程 ...原创 2018-04-03 10:53:40 · 143 阅读 · 0 评论 -
第36课 文本编辑器中的交互功能
1、判断未保存的数据 1.1、 QPlainTextEdit能够触发与编辑功能相关的信号 . 1.2、 解决方案: 1.2.1、 定义槽函数void onTextChanged() 1.2.2、 映射textChanged()信号到槽函数 1.2.3、 定义成员变量bool m_isTextChanged = fa...原创 2018-03-28 10:38:40 · 273 阅读 · 0 评论 -
第75课 多线程间的互斥(上)
一、多线程间的互斥 1、 生产消费者问题 1.1、 有n个生产者同时制造产品,并把产品放入仓库中 1.2、 有m个消费者同时从仓库中取出产品 1.3、 规则(产品是公共资源,同一时刻只能被一个线程访问) A、 当仓库未满,任意生产者可以存入产品 B、 当仓库未空,任意消费者可...原创 2018-04-03 15:40:56 · 192 阅读 · 0 评论 -
第37课 深度解析QMap与QHash
1、QMap深度解析 1.1、 QMap是一个以升序键顺序存储键值对的数据结构 1.1.1、 QMap原型为class QMap<K, T>模板 1.1.2、 QMap中的键值对根据key进行了排序 1.1.3、 QMap中的key类型必须重载operator < (小于操作符) 1.2、 QMap使用实例一 ...原创 2018-03-28 22:08:13 · 1727 阅读 · 0 评论 -
第38课 Qt中的事件处理(上)
1、图形界面应用程序的消息处理模型2、Qt的事件处理(操作系统发送的消息如何转变成Qt信号?) 2.1、 Qt平台将系统产生的消息转换为Qt事件(每一个系统消息对象Qt平台的一个事件) 2.1.1、 Qt事件是一个QEvent的对象 2.1.2、 Qt事件用于描述程序内部或者外部发生的动作 2.1.3、 任意的QObject对象都具备事件处理的能力 ...原创 2018-03-29 08:57:24 · 220 阅读 · 0 评论 -
第41课 编辑交互功能的实现
1、编辑交互功能 1.1、 编辑器中常规的编辑交互功能 1.2、 QPlainTextEdit提供了丰富的交互接口 1.3、 信号与槽的连接 2、文本编辑器中的界面状态 2.1、 不是任何时候都可以复制、粘贴、撤销、重做(比如开始没有数据时) 2.2、...原创 2018-03-31 13:57:38 · 269 阅读 · 0 评论 -
第28课 主窗口中的工具栏
1、主窗口中的工具栏 1.1、 工具栏的概念和意义 1.1.1、 应用程序中集成各种功能实现快捷键使用的一个区域 1.1.2、 工具栏并不是应用程序中必须存在的组件 1.1.3、 工具栏中的元素可以是各种窗口组件 1.1.4、 工具栏的元素通常以图标按钮的方式存在 1.2、 在Qt中提供与工具栏相关的类的组件 ...原创 2018-03-21 15:06:21 · 254 阅读 · 0 评论 -
第17课 对话框及其类型
1、对话框的概念 1.1、 对话框是与用户进行简短交互的顶层窗口 1.2、 QDialog是Qt中所有对话框窗口的基类 1.3、 QDialog继承于QWidget是一种容器类型的组件 2、QDialog的意义 2.1、 QDialog作为一种专用的交互窗口而存在(而QWidget可以作为...原创 2018-03-17 08:24:00 · 802 阅读 · 0 评论 -
第18课 登陆对话框实例分析
1、登录对话框 1.1、 登录对话框的需求分析 1.1.1、 可复用软件部件(不同项目中都可以使用) 1.1.2、 获取用户名和密码 1.1.3、 附加需求:随机验证码 1.2、 登录对话框的架构与设计 1.3、 如何获取用户名和密码及数据在两个不同对话框之间传递 1...原创 2018-03-17 08:25:44 · 234 阅读 · 0 评论 -
第20课 QT中的标准对话框(中)
1、颜色对话框 1.1、 Qt提供了预定义的颜色对话框QColorDialog类 1.2、 QColorDialog类用于提供指定颜色的对话框部件 1.3、 颜色对话框的使用方式 1.4、 Qt中的QColor类用来在程序中表示颜色的概念 1.5、 QColor类同时支持多种颜色的表示方式 1.5.1、 RGB:以...原创 2018-03-17 10:10:19 · 151 阅读 · 0 评论 -
第21课 QT中的标准对话框(下)
1、字体对话框 1.1、QT提供了预定义的字体对话框QFontDialog类 1.2、 QFontDialog类用于提供选择字体的对话框部件 1.3、 字体对话框的使用方式 1.4、 字体对话框中的实用函数 2、进度对话框 2.1 Qt提供了预定义的进度对话框...原创 2018-03-17 15:34:23 · 157 阅读 · 0 评论 -
第22课 布局管理器(一)
1、目前的GUI开发方式:绝对定位 1.1、 直接在像素级指定各个组件的位置和大小 1.1.1、 void Qwidget::move(int x, int y) 1.1.2、 void Qwidget::resize(int x, int y) 1.2、 问题:组件的大小和位置无法自适应父窗口的变化2、布局管理器 2.1、 Qt提供相关的类对界面组件...原创 2018-03-18 15:32:59 · 152 阅读 · 0 评论 -
第23课 布局管理器(二)
1、布局管理器的比例系数 1.1、 默认情况下以等比例的方式更新组件的大小 1.2、 可以自定义组件大小更新时的比例系数(布局管理最好的特性是:随着窗口的大小做出改变。) 1.3、 QBoxLayout中的比例系数设置 上接22课的内容,添加如下代码。(测试三种比例系数) 1.4、 注意:组件的初始化大小是独立于布局管理器设置的,因此不能保证组...原创 2018-03-18 21:07:33 · 229 阅读 · 0 评论 -
第24课 布局管理器(三)
1、如何实现下面的用户界面 1.1、 解决方法 1.1.1、 绝对定位组件的坐标和大小 1.1.2、 嵌套QBoxLayout(三个水平布局,一个垂直布局) 1.1.3、 创建3x2的QGridLayout // 首先用GridLayout来实现上面的布局.cpp文件#include "widg...原创 2018-03-19 08:25:30 · 164 阅读 · 0 评论 -
第25课 布局管理器(四)
1、栈式布局管理器 1.1、 栈式布局管理器(QStatckedLayout)概要 1.1.1、 所有组件垂直于屏幕的方向上被管理 1.1.2、 每次只有一个组件会显示在屏幕上 1.1.3、 只有最顶层的组件会被最终显示 1.2、栈式布局管理器的特点 1.2.1、 组件大小一致且充满父组件的显示区 ...原创 2018-03-19 11:07:09 · 154 阅读 · 0 评论 -
第31课 软件开发流程简介
1、软件开发流程 1.1、 什么是软件开发流程 1.1.1、 通过一系列步骤保证软件产品的顺利完成 1.1.2、 软件产品在生命期内的管理方法学 1.2、 软件开发流程的本质 1.2.1、 开发流程与具体技术无关 1.2.2、 开发流程是开发团队必须遵完的规则 1.3、 常见软件开发流程 1.3.1、 即兴模型...原创 2018-03-23 08:53:27 · 199 阅读 · 0 评论 -
第32课 Qt中的文件操作。
1、Qt中的IO操作 1.1、 Qt中IO操作的处理方式 1.1.1、 Qt通过统一的接口简化了文件与外部设备的操作方式 1.1.2、 Qt中的文件被看做是一种特殊的外部设备 1.1.3、 Qt中的文件操作与外部设备操作相同 1.2、 IO操作中的关键函数接口 注意: IO操作的本质:连续存储空间的...原创 2018-03-23 14:54:58 · 232 阅读 · 0 评论 -
第26课 布局管理器综合实例
1、需求分析 1.1、 练习开发一个向导用户界面 1.1.1、在同一个界面上展示不同的向导页面 1.1.2、 通过“上一步”和“下一步”按钮进行切换 1.1.3、 不同页面上的元素组件和元素排布都不相同 1.1.4、 页面中的组件通过布局管理器进行排布2、解决方案 2.1、 通过布局嵌套进行界面设计 ...原创 2018-03-19 21:35:27 · 214 阅读 · 0 评论 -
第33课 文件流和数据流
1、文件类型 1.1、 Qt中将文件类型分为两大类 1.1.1、 文本文件:文件内容是可读的文本字符 1.1.2、 数据文件:文件内容是直接的二进制数据 1.2、 QFile直接支持文本文件和数据文件的读写 .cpp文件#include <QtCore/QCoreApplication>#include <QIODev...原创 2018-03-23 21:48:49 · 617 阅读 · 0 评论 -
第39课 Qt中的事件处理(下)
1、Qt中事件处理的顺序 1.1、 事件传递的过程 1.1.1、 事件被组件对象处理后可能(并不是一定)传递到其父组件对象 1.2、QEvent中的关键成员函数 实验一: MyEdit.h#ifndef _MYEDIT_H_#define _MYEDIT_H_#include <QLineEdi...原创 2018-03-29 20:54:11 · 283 阅读 · 0 评论 -
第40课 拖放事件深度
1、Qt中的拖放事件 1.1、 拖放事件概述 1.1.1、 拖放一个文件进入窗口将触发拖放事件 1.1.2、 每一个QWidget对象都能处理拖放事件 1.1.3、 拖放事件的函数为(需要重写的) 1.2、 拖放事件中的QMimeData 1.2.1、 QMimeData是Qt中的多媒体数据...原创 2018-03-30 10:09:52 · 295 阅读 · 0 评论 -
第27课 应用程序中的主窗口
1、主窗口的概念 1.1、 应用程序中的主窗口 1.1.1、 主窗口是与用户进行长时间交互的顶级窗口 1.1.2、 程序的绝大多数功能直接由主窗口提供 1.1.3、 主窗口通常是应用程序启动后显示的第一个窗口 1.1.4、 整个程序由一个主窗口和多个对话框组成 1.2、 Qt中的主窗口 1.2.1、 Qt开发平台中直...原创 2018-03-21 09:44:07 · 465 阅读 · 0 评论 -
第76课 多线程间的互斥(下)
一、多线程间的互斥 程序有多少临界资源? 需要多少线程锁? 1、 程序的临界资源与线程锁的数量关系 1.1、 一般性原则:每一个临界资源都需要一个线程锁进行保护 2、 死锁的概念 2.1、 线程间相互等待资源而造成彼此无法继续执行(只用一个线程锁,就不会发生死锁了,客户端可以使用...原创 2018-04-06 20:35:46 · 142 阅读 · 0 评论