自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

深度讲解嵌入式

树欲静而风不止

原创 JDBC编程 -------处理Blob数据类

BLOb(Binary long object) 是二进制长对象的意思,Blob列通常用于存储大文件,典型的用于存储一张图片或者一个声音文件。由于他们的特殊性,需要用特殊的格式存储。使用Blob列可以把图片或者声音等二进制文件保存在数据库,并可以从数据库中恢复指定其文件。如果需要将图片插入数据库中,显然不能用普通 的SQL语句操作,因为有一个关键的问题那就是Blob常量无法表示。自然而然,所以将要把Blob数据插入数据库中需要使用PreparedStatement,该对象有一个方法,就是SetBi

2020-07-30 15:13:31 32

原创 JDBC编程---JDBC基础以及连接MySql数据库

一:JDBC基础 JDBC全称为 Java Database Connectivity。即为java数据库连接,它是一种可执行SQL语句的API。程序可通过JDBC连接到关系型数据库,并且使用结构化查询语言(SQL数据库标准的查询语言)来完成对数据库的查询和更新。与其他数据库编程环境相比,JDBC为数据库提供了标准的API。所以使用JDBC的数据库可以跨平台开发,如果全部使用标准的SQL语句,也可以说夸数据库开发。也就是说,如果使用一个JDBC开发一个数据库应用,那么该应用既可以在windows..

2020-07-22 17:23:07 40

原创 MySql在windwos下的安装

1 先去MySql官网去下载相应的windows下64位版本,现在基本都是64位的这里的下载你可以选择版本,安装8.0以下基本就行了,不要太靠近,过来人的经验吧。2 将下载过的压缩包解压,并且配置my.ini,可以自动生成,也可以配置配置以下的.ini[mysqld]# 设置3306端口port=3306# 设置mysql的安装目录basedir=D:\TOOL\mysql-5.7.29-winx64# 设置mysql数据库的数据的存放目录datadir=D..

2020-07-10 18:40:53 36

原创 Qt之mvc模式——QHeadView详解已经应用

QHeaderView类为项目视图提供标题行或标题列。QHeaderView显示项目视图(如QTableView和QTreeView类)中使用的标题。它取代了Qt3的QHeader类,QHeader类以前用于相同的目的,但是为了与item视图类保持一致,它使用了Qt的模型/视图体系结构。QHeaderView类是模型/视图类之一,是Qt模型/视图框架的一部分。header使用qAbst...

2020-05-07 12:38:11 164

原创 Qt5.8.0(64位)+ VS2015环境搭建(常见问题)

很长时间没有更新博客了,最近由于疫情大家都在办公,所以才有时间写一篇博客了。因为工作需要,我们的开发环境从老的云桌面迁移到新的云桌面了,自然所有的环境都要重装了,由于新的云桌面是Win10,不知道是不是系统问题了,反正在安装Qt和Vs2015过程中遇到各种问题了,所以写下博客以供大家参考了,若有什么不对的地方,望各位海涵!我们都知道了Qt分为不同的版本了,因为Qt是跨编程的,Qt_Lin...

2020-02-25 18:56:22 329

原创 Qt Charts 动态实时绘制各种曲线图

在Qt Charts发布之前,Qt比较著名两个画图插件是 qwt和Qcustom, 其中Qcustom较轻量,只需要在project 中包含qcustomplot.h 和qcustomplot.cpp 几乎就可以使用。相比Qcustom,qwt功能更为强大,但是它的安装十分麻烦,阻挡了很多人(包括我)的使用。但是qwt只是对静态图表的表示非常不错,动态曲线性能并不突出。如果只是静态绘图,或...

2019-09-09 16:33:12 7339 9

原创 Qt Linguist 介绍和简单应用

简介Qt提供了一款优秀的支持Qt C++和Qt Quick应用程序的翻译工具。发布者、翻译者和开发者可以使用这款工具来完成他们的任务。发布者:承担了全面发布应用程序的责任。通常,他们协调开发者和翻译者的工作,可以使用lupdate工具同步源代码,进行翻译,使用lrelease同步工具为发布应用程序创建运行时使用的翻译文件。翻译者:可以使用Qt Linguist工具翻译应用程序的文本。当...

2019-05-31 19:16:53 3554

原创 视图代理(QML)

与 Qt  model /view类似,在自定义用户界面中,代理扮演着重要的角色。模型中的每一个数据项都要通过一个代理向用户展示,事实上,用户看到的可视部分就是代理。 每一个代理都可以访问一系列属性和附加属性。这些属性及附加属性中,有些来自于数据模型,有些则来自于视图。前者为代理提供了每一个数据项的数据信息;后者则是有关视图的状态信息。代理中最常用到的是来自于视图的附加属性ListVi...

2019-01-25 17:06:34 259

原创 QML下的动态视图

Repeater适用于少量的静态数据集。但是在实际应用中,数据模型往往是非常复杂的,并且数量巨大。这种情况下,Repeater并不十分适合。于是,QtQuick 提供了两个专门的视图元素:ListView和GridView。这两个元素都继承自Flickable,因此允许用户在一个很大的数据集中进行移动。同时,ListView和GridView能够复用创建的代理,这意味着,ListView和Grid...

2019-01-24 16:05:34 339

原创 设计模式之装饰模式(c++实现)

装饰模式是结构型设计模式之一,使用一种对客户透明的方式来动态拓展对象的功能,Java IO中各种流的嵌套就是装饰模式的很好体现。 1. 装饰模式介绍装饰模式定义:动态地给一个对象添加一些额外的功能,比生成子类要灵活。 装饰模式的使用场景:需要透明且动态地拓展类的功能的场景。 装饰模式包括的角色:                              ...

2019-01-24 15:04:30 95

原创 Qt Quick Controls

自 QML 第一次发布已经过去一年多的时间,但在企业应用领域,QML 一直没有能够占据一定地位。很大一部分原因是,QML 缺少一些在企业应用中亟需的组件,比如按钮、菜单等。虽然移动领域,这些组件已经变得可有可无,但在桌面系统中依然不可或缺。为了解决这一问题,Qt 5.1 发布了 Qt Quick 的一个全新模块:Qt Quick Controls。顾名思义,这个模块提供了大量类似 Qt Widge...

2019-01-18 17:21:37 1201 1

原创 QML下的布局

上一章我们介绍了 QML 中用于定位的几种元素,被称为定位器。除了定位器,QML 还提供了另外一种用于布局的机制。我们将这种机制成为锚点(anchor)。锚点允许我们灵活地设置两个元素的相对位置。它使两个元素之间形成一种类似于锚的关系,也就是两个元素之间形成一个固定点。锚点的行为类似于一种链接,它要比单纯地计算坐标改变更强。由于锚点描述的是相对位置,所以在使用锚点时,我们必须指定两个元素,声明其中...

2019-01-17 16:46:09 637

原创 qml下的定位器

QML 提供了很多用于定位的元素。这些元素叫做定位器,都包含在 QtQuick 模块。这些定位器主要有 Row、Column、Grid和Flow等。为了介绍定位器,我们先添加三个简单的组件用于演示:import QtQuick 2.0Rectangle { width: 48 height: 48 color: "blue" border.color:...

2019-01-16 17:04:25 357 1

原创 QML自定义组件

如果我们了解几种 QML 的基本元素。QML 可以由这些基本元素组合成一个复杂的元素,方便以后我们的重用。这种组合元素就被称为组件。组件就是一种可重用的元素。QML 提供了很多方法来创建组件。不过,本章我们只介绍一种方式:基于文件的组件。基于文件的组件将 QML 元素放置在一个单独的文件中,然后给这个文件一个名字。以后我们就可以通过这个名字来使用这个组件。例如,如果有一个文件名为 Button.q...

2019-01-16 15:52:24 1508

原创 c++设计模式----观察者模式

设计模式是软件工程的基石脉络,如同大厦 的结构一样。设计模式的分类,可分为创建型模式,结构性模式,行为型模式。1 创建型模式:通常和对象的创建有关,涉及到对象的实例化方式。大概有五种模式工厂方法模式 定义一个创建产品对象的工厂接口,将实际创建工作推迟到子类 抽象工厂模式 创建一系列相关或者相互依赖的接口,而无需指定他们具体的类     建造者模式 将一个...

2019-01-08 14:19:55 108 1

原创 Windows 系统下VS2013安装插件VA_X_Setup2074(番茄插件)

Visual AssistX是一款非常好的Microsoft Visual Studio插件,它可以完全集成到Microsoft开发环境中,升级IDE,在不改变编程习惯的同时就可以利用Visual Assist X的便利。在Visual Studio中并没有集成该Visual Assist,需要我们自行安装。首先介绍一下再Windows 8之前的系统中安装VA_X的方式:1. 双击VA_X...

2019-01-07 16:20:53 1224

原创 QT之进程和进程间通信(IPC)

进程是操作系统的基础之一。一个进程可以认为是一个正在执行的程序。我们可以把进程当做计算机运行时的一个基础单位。关于进程的讨论已经超出了本章的范畴,现在我们假定你是了解这个概念的。在 Qt 中,我们使用QProcess来表示一个进程。这个类可以允许我们的应用程序开启一个新的外部程序,并且与这个程序进行通讯。下面我们用一个非常简单的例子开始我们本章有关进程的阐述。//!!! Qt5QStr...

2019-01-03 15:32:52 3015 6

原创 QT中读取XML文件三种方式 的实例

第一部分:QXmlStreamReaderXML(eXtensible Markup Language)是一种通用的文本格式,被广泛运用于数据交换和数据存储(虽然近年来 JSON 盛行,大有取代 XML 的趋势,但是对于一些已有系统和架构,比如 WebService,由于历史原因,仍旧会继续使用 XML)。XML 由 World Wide Web Consortium(W3C)发布,作为 SH...

2018-12-25 11:23:20 12095 1

原创 QT中view/model中只视图选择模型QItemSelectionModel

选择是视图中常用的一个操作。在列表、树或者表格中,通过鼠标点击可以选中某一项,被选中项会变成高亮或者反色。在 Qt 中,选择也是使用了一种模型。在 model/view 架构中,这种选择模型提供了一种更通用的对选择操作的描述。对于一般应用而言,Qt 内置的选择模型已经足够,但是,Qt 还是允许你创建自己的选择模型,来实现一些特殊的操作。 Qt 使用QItemSelectionModel类获...

2018-12-21 17:18:49 595

原创 QT模型类 model/view 之自定义读写模型

第一部分:   自定义只读模型model/view 模型将数据与视图分割开来,也就是说,我们可以为不同的视图,QListView、QTableView和QTreeView提供一个数据模型,这样我们可以从不同角度来展示数据的方方面面。但是,面对变化万千的需求,Qt 预定义的几个模型是远远不能满足需要的。因此,我们还必须自定义模型。类似QAbstractView类之于自定义视图,QAbst...

2018-12-21 16:01:13 525

原创 QListWidget、QTreeWidget和QTableWidget用法详细说明

我们了解了 model/view 架构的基本概念。现在我们从最简单的QListWidget、QTreeWidget和QTableWidget三个类开始了解最简单的 model/view 的使用。这部分内容的确很难组织。首先,从最标准的 model/view 开始,往往会纠结于复杂的代码;但是,如果从简单的 QListWidget、QTreeWidget和QTableWidget开始,由于这三个类都...

2018-12-14 09:34:08 1057

原创 Qt自定义事件

尽管 Qt 已经提供了很多事件,但对于更加千变万化的需求来说,有限的事件都是不够的。例如,我要支持一种新的设备,这个设备提供一种崭新的交互方式,那么,这种事件如何处理呢?所以,允许创建自己的事件 类型也就势在必行。即便是不说那种非常极端的例子,在多线程的程序中,自定义事件也是尤其有用。当然,事件也并不是局限在多线程中,它可以用在单线程的程序中,作为一种对象间通讯的机制。那么,为什么我需要使用事件,...

2018-12-10 19:07:02 94

原创 QLabel自动换行(支持中英文)

QLabel支持提供了API,只有中文换行,因为中文里面含有空格换行符号,如下LabelName->setWordWrap(true);LabelName->setAlignment(Qt::AlignTop);如果你输入了英文里面提供了换行符号或者空格,英文也可以支持换行QString str = "fdsfa";str= str+"\n" +"fdddddd...

2018-12-05 19:30:32 2777 3

原创 QT事件 --接受和忽略函数的理解

 //!!! Qt5// ---------- custombutton.h ---------- //class CustomButton : public QPushButton{ Q_OBJECTpublic: CustomButton(QWidget *parent = 0);private: void onButtonCliecked();};...

2018-12-02 23:31:56 88

原创 Qt事件---定义

事件(event)是由系统或者 Qt 本身在不同的时刻发出的。当用户按下鼠标、敲下键盘,或者是窗口需要重新绘制的时候,都会发出一个相应的事件。一些事件在对用户操作做出响应时发出,如键盘事件等;另一些事件则是由系统自动发出,如计时器事件。事件也就是我们通常说的“事件驱动(event drive)”程序设计的基础概念。事件的出现,使得程序代码不会按照原始的线性顺序执行。想想看,从最初的 C 语言开...

2018-12-02 22:40:56 133

原创 浅谈智能指针

一 什么是智能指针?智能指针是一个类,用于封装一个普通指针的类,并且在这个类的构造函数中将这个普通指针初始化,并且在析构函数中对这个普通指针进行释放。而这个智能指针之所以这样做,是为了解决我们在以普通指针malloc或new申请空间之后,由于这里申请的空间需要手动释放,否则会造成内存泄漏,但是虽说大家在使用malloc或new申请空间之后,大多数人会牢记这点,但是这个问题还是防不胜防的,而且除...

2018-08-17 10:58:42 125

原创 qt的动画和状态机

一 简介 动画框架用于创建的GUI ,它可以为GUI快速转换为柔和的画面及添加原色。可以在QT提供的控件,QObject派生的类控件等元素上使用动画效果。状态机 即有限状态机,用于定义状态之间的移动,例如,开关的行为动作可以分为ON/OFF两种,根据其行为变为ON/OFF。如果使用状态机,则可以简单快捷地实现对动画的行为组合。动画框架除了提供基于C++的GUI创建框架外,还提供可以再Q...

2018-08-04 15:18:37 956

原创 qt5中的QApplication: No such file or directory问题

出现原因:Qt5里不再用QtGui模块,而是使用QtWidgets模块。解决方法: 在.pro里加上QT += widgets实测 greaterThan(QT_MaJOR_VERSION,4) : QT+= widgets 或者 QT+= widgetsqt4 和qt5的版本更新造成的解决方法是:在.pro工程项目文件中添加一行QT += widgets,然...

2018-07-20 19:26:50 1125

转载 单例模式浅谈二

class CSingleton /* 懒汉式 */{ public: static CSingleton * GetInstance() // 写法是在getInstance中new instance然后返回 { if(m_pInstance == NULL) //判断是否第一次调用 m_pInstance = new ...

2018-07-19 18:52:38 67

转载 槽机制的第五个参数Qt::ConnectionType

转载处:https://blog.csdn.net/kaida1234/article/details/79557348原来对QThread的理解,就是重写run(),曾经还一度搞不明白,到底它的槽属于主线程还是子线程。后来学了MFC,一度觉得MFC的机制比较人性化,起码有工作线程和界面线程的用法,而不像QThread只有run是真正活在子线程里面的。而直到今天再次研究QThread,发现...

2018-07-19 17:12:48 216

原创 消息传递机制(通讯)

一 同步和异步(线程)在维基百科中的释义是:在计算机编程中,异步,指的是独立于主程序流发生的事件,以及处理该事件的方式。这些可能是“外部”事件,例如信号的到达,或由程序发起的操作,该操作与程序同时/并发的执行,而程序不需要阻塞的等待结果。异步的输入(input)/输出(output)是导致异步的一个例子,让程序向存储或网络设备发出命令,而处理器继续执行程序。这样做提供了一定程度的并行性。在...

2018-07-19 15:12:38 2749

原创 JSON的浅谈和基本介绍

一: 什么是JSON?         JSON(JavaScript Object Notation) 是一种轻量级的数据交换格局。它基于ECMAScript的一个子集。 JSON选用完全独立于言语的文本格局,但是也使用了类似于C言语宗族的习气(包含C、C++、C#、Java、JavaScript、Perl、Python等)。这些特性使json调试成为抱负的数据交换言语。 易于人阅览和编写,同时...

2018-07-16 15:40:47 2229

原创 qt读写一个文件的操作

参考:http://blog.csdn.net/xgbing/article/details/7772953二进制文件的读写文件可以使用QFile类、QStream文本文件的读写建议使用QTextStream类,它操作文件更加方便。打开文件时,需要参数指定打开文件的模式:模式值描述QIODevice::NotOpen0x0000不打开QIODevice::ReadOnly0x0001只读方式QIO...

2018-07-16 10:25:01 1226

转载 lcd 1602晶体显示合解

第一个部分(可以结合着看加以理解)一、学习目的 学会如何使用一个新的模块:从硬件上获得接口的了解;查看芯片的数据手册,了解接口的使用方法写程序时要遵循 硬件电路 –> 硬件接口 –> 软件编程 这三个部分二、LCD1602原理 1、只能显示ASCII码 1602 = 16个字符/行 * 2行 = 像素 16*22、分析时序图 (1)写操作(单片机至HD44780)  描述: 首先要对寄...

2018-04-26 16:01:59 1080

原创 qt读写配置文件(.ini)

INIINI文件格式是某些平台或软件上的配置文件的非正式标准,以节(section)和键(key)构成,常用于微软Windows操作系统中。INI文件是Initialization File的缩写,即初始化文件。除了windows现在很多其他操作系统下面的应用软件也有.ini文件,用来配置应用软件以实现不同用户的要求。一般不用直接编辑这些.ini文件,应用程序的图形界面即可操作以实现相同的功能。I...

2018-04-13 16:40:25 596

转载 远程工具箱 MobaXterm

破解Securecrt怕中毒,Xshell 用着不爽,Putty太单薄,手头没Mac用不了iterm2。那就试试这个全能开源的终端吧(MobaXterm)!下面就介绍下MobaXterm的主要功能传送门:MobaXterm官网 ,MobaXterm下载windows下支持多标签的终端通过MobaXterm进行远程终端链接,你可以创建 SSH, Telnet, Rlogin, RDP, VNC, X...

2018-04-13 09:57:21 1872

原创 qt中xml的使用

1 XML简介XML是ExtensibleMarkup Language的缩写,即可扩展标记语言。它是一种用来创建的标记的标记语言。使用XML标记语言可以做到数据或数据结构在任何编程语言环境下的共享。XML中有格式正规的XML和有效的XML。XML文档的元素一般是由标记头、标记末和标记间的字符串数据构成。元素可包含其他元素、文本或者两者的混合物。元素也可以拥有属性。一般格式:<quote&g...

2018-03-27 11:53:03 3702

原创 ubuntu下vi/vim 的基本用法

1 简介vim是文本编辑器。代码补完、编译及错误跳转等方便编程的功能特别丰富,在程序员中被广泛使用。下面讲述一些必要的基本命令,而掌握好这些命令,您就能够很容易将vim当作一个通用的万能编辑器来使用了。vim自带基础教程:在任意一台装有vim的机器上,命令行中输入vimtutor  然后就可以看到文档了。另外网上也有很多例子如:http://blog.csdn.net/niushuai666/ar...

2018-03-23 16:50:54 37397 3

原创 c/c++回调函数的使用

【1】函数指针【1.1】概念指针是一个变量,是用来指向内存地址的。一个程序运行时,所有和运行相关的物件都是需要加载到内存中,这就决定了程序运行时的任何物件都可以用指针来指向它。函数是存放在内存代码区域内的,它们同样有地址,因此同样可以用指针来存取函数,把这种指向函数入口地址的指针称为函数指针。【1.2】Hello World程序[cpp] view plain copyint _tmain(int...

2018-03-23 09:53:08 1086

原创 qt中两种定时器的用法

 Qt中定时器的使用有两种方法,一种是使用QObject类提供的定时器,还有一种就是使用QTimer类。         其精确度一般依赖于操作系统和硬件,但一般支持20ms。下面将分别介绍两种方法来使用定时器。方法一:QObject中的定时器的使用,需要用到三个函数1、   int QObject::startTimer ( int interval ) ;        这个是开启一个定时器的...

2018-03-19 11:12:23 287

提示
确定要删除当前文章?
取消 删除