QT学习之路
文章平均质量分 84
臣有一事不知当不当讲
这个作者很懒,什么都没留下…
展开
-
No.55~57 模型视图设计模式
模型试图设计模式的核心思想:1、模型(数据)与视图(显示)相分离;2、模型对外提供标准接口存取数据(不关系数据如何显示);3、视图自定义数据的显示方式(不关系数据如何被组织和存储)。直观理解:其中Model指的就是 组织数据的方式。工作机制:一、当数据发生改变时,模型发生信号通知视图,视图对数据的变化做出相应的调整。(自由解析)二、当用户与视图进行交互时,视图发出信号,通过模型提取相应的数据。Qt...原创 2018-03-16 10:38:06 · 289 阅读 · 0 评论 -
XML是什么,它可以做什么?——XML详解
举几个栗子说明一下。比如,我们要给对方传输一段数据,数据内容是“too young,too simple,sometimes naive”,要将这段话按照属性拆分为三个数据的话,就是,年龄too young,阅历too simple,结果sometimes naive。我们都知道程序不像人,可以体会字面意思,并自动拆分出数据,因此,我们需要帮助程序做拆分,因此出现了各种各样的数据格式以及拆分方式。...原创 2018-06-12 15:54:54 · 260 阅读 · 0 评论 -
Qt平台的学习重点
1、GUI系统的核心模型和机制2、界面组件间的父子关系3、信号与槽如何使用4、多线程和界面组件的关系转载 2018-03-31 21:02:24 · 434 阅读 · 1 评论 -
Qt中的多线程及其应用(4)
九、另一种创建线程的方式面向对象程序设计实践的早期,工程中习惯于通过继承的方式扩展系统的功能。现代软件架构技术,参考标准,一是尽量使用组合的方式实现系统功能,二是代码中仅体现需求中的继承关系。通过继承的方式实现新的线程类有什么实际意义?线程的各个子类仅保护的void run()函数不同,接口部分完全相同。结论:通过继承的方式实现多线程没有任何实际意义,QThread对应于操作系统中的线程,QThr...原创 2018-03-31 20:56:40 · 405 阅读 · 0 评论 -
Qt中的多线程及其应用(3)
七、信号与槽的连接方式本节介绍信号与槽的五种连接方式:Qt::DirectConnection(); //立即调用Qt::QueuedConnection(); //异步调用Qt::BlockingQueuedConnection(); //同步调用Qt::AutoConnection(); //默认连接Qt::UniqueConnection(); //单一连接connection()函...原创 2018-03-31 19:15:31 · 343 阅读 · 0 评论 -
Qt中的多线程及其应用(2)
五、银行家算法的分析和实现问题描述:研究一个银行家如何将总数一定的资金,安全地借给若干个客户,是客户既能满足资金需求,也能使银行家收回本金。限制条件: 1、每个客户再见款前都必须提前说明所需资金总额;2、每次借钱都是以一个单位(一万元)进行;3、客户在拿到一个单位的借款前可能需要等待;4、银行保证客户的等待时间是有限的(借或不借)。算法策略:将资金优先借予资金需求较少的客户。(可以尽快归还)应用场...原创 2018-03-31 15:18:00 · 738 阅读 · 0 评论 -
图像处理和绘制
在Qt中,可以对现有的图像进行处理,也可以对图形的显示进行设置。一、设备无关、图像类——QImage:特点:独立于具体硬件的图像类,主要用于读写图像文件,针对IO访问设计,并且能够在像素级别对图像进行处理。我们先看一个实例:左边是原图,右边是经过处理后的图像,首先对图形大小进行了改变,并且将所有的RGB颜色,全都转换为灰色。实现代码如下:int main(int argc, char *argv[...原创 2018-03-21 20:09:00 · 311 阅读 · 0 评论 -
简易绘图程序的编写和程序启动画面(QSplashScreen)
功能需求:自由图形绘制;基本图形绘制(直线,矩形,椭圆);能够选择图形绘制颜色。解决方案:1、以QWidget为基类创建绘图主窗口;2、使用QGroupBox创建图形设置区域;3、使用单选按钮QRadioBox实现目标图形的选择;4、使用组合框QCombox实现绘图颜色的选择。定义一个枚举类型的变量用来保存绘图类型: enum DrawType { NONE, ...原创 2018-03-21 19:45:58 · 522 阅读 · 0 评论 -
Qt中的多线程及其应用(1)
一、进程与线程的概念什么是程序?程序是计算机存储系统中的数据文件。分为源代码程序和可执行程序。源代码程序一般为文本文件,用来描述程序的行为和功能,可执行程序一般为二进制文件,可以直接加载并执行。源代码程序经过编译器编译,就成为可执行程序。什么是进程?广义的概念认为是程序关于某个数据集合的一次运行活动,狭义地讲,就是程序被加载到内存中后,执行得到的进程。程序和进程的区别:程序是硬盘中的静态文件,是存...原创 2018-03-30 22:35:56 · 1447 阅读 · 0 评论 -
Qt中的图形绘制
一、基础图形绘制对于Qt中的图形绘制,最基础的元素之一就是“Qt中画家”——QPainter类,通过这个类,我们可以在任何QWidget上进行绘画,这个类拥有绘图所需的画笔(QPen),画刷(QBrush),字体(QFont),以及一系列针对不同形状(点、线、圆形、矩形等)不同参数的绘制函数。绘图的基础在于QPaintDevice类,这个类代表着Qt的绘图板,并且通过这个类,可以设置绘图板...原创 2018-03-19 22:56:10 · 9668 阅读 · 0 评论 -
Qt中的文本流和数据流
Qt中的文件类型分为两大类:文本文件:人为可读的文本字符;数据文件:文件内容是直接的二进制文件。QFile直接支持文本文件和数据文件的读写。实例代码如下:#include <QtCore/QCoreApplication>#include <QFile>#include <QDebug>#include <QByteArray>int ma...原创 2018-03-22 22:24:35 · 6164 阅读 · 0 评论 -
Qt 使用QPalette设置Qpushbutton背景色的问题
编程发现,无法通过QPalette实现对界面所有按钮的颜色的动态设置。只能通过setStyleSheet实现特定颜色的设置。代码如下:void Palette::ShowButton(){ QStringList colorList = QColor::colorNames(); QColor color = QColor(colorList[buttonComboBox->...原创 2018-03-22 21:52:24 · 3581 阅读 · 1 评论 -
No.5 QT creator工程介绍
QT Creator以工程项目的方式对源码进行管理一个QT Creator工程包括不同类型的文件:—— .pro 项目描述文件—— .pro.user 用户配置描述文件—— .h 头文件—— .cpp 源文件—— .ui 界面描述文件—— 资源文件(图片,音频等).pro 项目描述文件的基本构成:—— # :注释起始符——QT: 模块声明——TARGET:可执行文件名——TEMPLATE:程序模板...原创 2018-03-05 20:10:13 · 312 阅读 · 0 评论 -
No.6 窗口组件及窗口类型
一、窗口组件图形用户界面由不同的窗口和窗口组件构成;<QtGui>头文件包含窗口组件,对应Qt中的GUI模块;Qt以组件对象的方式构建图形用户界面。组件的类型:——容器类(父组件):用于包含其他的界面组件——功能类(子组件):用于实现特定的交互功能划重点:Qt中没有父组件的顶级组件叫作窗口。QWidget类继承自QObject类和QPaintDevice:——QObject是所有支持Q...原创 2018-03-05 21:10:00 · 287 阅读 · 0 评论 -
Qt 中字符串转二进制中的一个Bug
唐老师代码如下:#include <QtCore/QCoreApplication>#include <QFile>#include <QDebug>int main(int argc, char *argv[]){ QCoreApplication a(argc, argv); QFile file("C:/Users/hp/Desk...原创 2018-03-12 15:03:41 · 2582 阅读 · 0 评论 -
No.58~60 自定义模型类
QStandardItemModel是一个通用的模型类:1、能够以任意的方式组织数据(线性、非线性);2、数据组织的基本单位为数据项(QStandardItem);3、每一个数据项能够存储多个数据状态(附加数据角色);4、每一个数据项能够对数据状态进行控制(可编辑,可选。。。)。组织结构如下:新类型引入:QVariant:1、QVariant 是一个用于封装的类型;2、QVariant 能够表示大...原创 2018-03-16 15:23:31 · 135 阅读 · 0 评论 -
lambda表达式
c11新特性中加入了lambda表达式,所以Qt 也支持需在.pro文件中加入CONFIG += c++11#include<iostream>using namespace std;int main(){int a = 1;int b = 2;auto func = [=, &b](int c)->int {return b += a + c;};re...转载 2018-06-12 20:50:51 · 157 阅读 · 0 评论