自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

贝勒里恩的博客

日拱一卒,点滴记录

  • 博客(52)
  • 资源 (8)
  • 收藏
  • 关注

原创 树莓派上用QT搭建MQTT环境教程

第一步:下载源码git clone https://code.qt.io/qt/qtmqtt.git也可以去我的百度网盘里下载,下面的链接下载链接提取码:fopr第二步:树莓派安装依赖库sudo apt install qtbase5-private-dev第三步:开始编译cd qtmqttqmakemake -j4发现编译失败,编译过程中会出现两个错误:第一个错误...

2020-03-31 15:40:12 2755 6

原创 学习QCustomPlot【2】库使用入门教程

第一步:下载去官网下载QCustomPlot:官网链接第二步:工程前期准备工作将QCustomPlot类加入到你的工程中:先把qcustomplot.h和qcustomplot.cpp复制到你的工程文件夹中,然后右键工程->添加现有文件,选中头文件和源文件就可以了。第三步:编程前期准备工作在工程文件(即.pro文件)中添加下面这行代码:greaterThan(QT_MAJOR_...

2020-03-28 11:10:15 4579 1

原创 学习QCustomPlot【1】QCustomPlot介绍

一、QCustomPlot介绍1、QCustomPlot是一个用于绘图和数据可视化的Qt C++构件。 它没有进一步的依赖关系,并有很好的文档记录。 该绘图库专注于制作美观,出版品质的2D图表,图表和图表,以及为实时可视化应用程序提供高性能。 QCustomPlot可以导出为各种格式,如矢量化的PDF文件和光栅化图像,如PNG,JPG和BMP。 QCustomPlot是在应用程序内部显示实时数据...

2020-03-28 11:09:23 18048

原创 学习QT之自定义控件的使用教程

自定义的控件无非是继承自Qt的某个类自定义的一个类,常用的是继承自QWidget类。在Qt可视化编程中,可视化编程有两种方式:第一种:使用常规的方法,创建一个该类的对象,然后加入到布局管理器中,show一下就可以看到效果了;第二种:Qt Designer提供的控件拖拽创建界面,可是自定义的控件显然不在系统自带的控件列表中,所以我们需要看看自定义的控件是继承自哪个类,例如:QWidget,然后拖...

2020-03-28 10:20:29 4421

原创 学习QT之子线程控制主界面UI控件

在子线程里控制主界面的UI控件有两种方法:第一种是在子线程中发送信号,然后在主线程中去更新;第二种方法是在子线程中创建同样的对象,然后把主界面中控件的指针赋给创建的对象。第一种方法在此不做实例展示,在此通过一个简单的例子展示第二种方法:下面是主界面的初始转态:下面这个是继承自QThread类的子线程类sonthread.h#ifndef SONTHREAD_H#define SONT...

2020-03-28 00:51:00 6855 9

原创 学习QT之多线程编程两种方式详解

QT的多线程编程主要有两种方式:第一种是继承自QThread,然后重写run()函数;第二种是继承自QObject,然后把整个对象moveToThread;两种方法比较:第一种方法只有run()函数是运行在子线程中。如果在构造函数中调用其他方法,则该方法运行在主线程中;如果在run()函数中调用其他方法,则该方法运行在子线程中。第二种方法整个对象都移入到一个子线程中,然后通过信号槽...

2020-03-27 23:51:11 1075

原创 学习QT之模型/视图结构

MVC设计模式是起源于Smalltalk的一种与用户界面相关的设计模式。通过使用此模式,可以有效地分离数据和用户界面。MVC设计模式包括三个元素:表示数据的模型(Model)、表示用户界面的视图(View)和定义了用户在界面上操作的控制器(Controller)。与MVC设计模式类似,Qt引入了模型/视图结构用于完成数据与界面的分离,即InterView框架。但不同的是,Qt的InterView...

2020-03-27 17:17:42 399

原创 反转链表

题目描述输入一个链表,反转链表后,输出新链表的表头。题目分析:对于链表问题,一定要注意是否带有头结点,因为有无头结点在编程时存在一些细节需要注意。对于链表的反转有两种办法:1、头插法:将结点逐个从链表中摘下,并将该节点插入头结点之后。2、原地反转:如果访问结点不为空,记下当前结点(记录结点),访问结点后移,记录结点指向头结点,头结点指向记录结点。具体代码:不带头结点原地反转/*st...

2020-03-27 12:27:04 112

原创 链表中倒数第k个结点

题目描述输入一个链表,输出该链表中倒数第k个结点。题目分析:对于求链表中的倒数第k个结点,由于链表不能随机访问,只能顺序访问,所以我们可以采用快慢指针法进行求解。具体步骤为:快指针先走k步,然后快、慢指针同时走,当快指针到达链表末端时,慢指针此时指向的就是倒数第k个结点。这个题目有几个特殊情况需要注意一下:1、当链表为空时:也就不存在倒数第几个结点了,直接返回空指针;2、当k<=0...

2020-03-27 11:05:40 153

原创 调整数组顺序使奇数位于偶数前面

题目描述输入一个整数数组,实现一个函数来调整该数组中数字的顺序,使得所有的奇数位于数组的前半部分,所有的偶数位于数组的后半部分,并保证奇数和奇数,偶数和偶数之间的相对位置不变。例如:2,1,4,5,3,6 变为 1,5,3,2,4,6题目分析:以空间换时间,所以我们开辟一个数组,先遍历一遍原数组将奇数的值存在新数组前面,再遍历一遍将偶数的值存在新数组的后面。具体代码:class Solu...

2020-03-26 11:51:33 192

原创 数值的整数次方

题目描述给定一个double类型的浮点数base和int类型的整数exponent。求base的exponent次方。保证base和exponent不同时为0题目分析:对于求一个数的幂,我们可以这样转化。例如求10^3,我们可以将3化为二进制0011,所以10^3=10^0011=10^0001 * 10^0010=10^1 * 10^2=10*100=1000。所以我们只需要将指数的二进制...

2020-03-26 11:06:49 145

原创 二进制中1的个数

题目描述输入一个整数,输出该数二进制表示中1的个数。其中负数用补码表示。题目分析:求二进制表示中1的个数,常规的思维是先将这个数转化为二进制,然后逐位访问判断进行累加。现在我们换一种思路,利用位操作符进行求解。我们用一个unsigned int flag=1与该数进行逐位与操作,如果结果不为0,则累加;然后对flag进行循环左移1位的操作更新flag。如此操作下来,就可以求出二进制中1的个数了...

2020-03-25 16:49:33 128

原创 矩形覆盖

题目描述我们可以用21的小矩形横着或者竖着去覆盖更大的矩形。请问用n个21的小矩形无重叠地覆盖一个2*n的大矩形,总共有多少种方法?比如n=3时,2*3的矩形块有3种覆盖方法:题目分析:对于这种题型我们可以采取找规律的方法来解答,显然F(0)=0,F(1)=1,F(2)=2,F(3)=3,那么F(4)=?我们可以试着画一下:显然只有以上5种覆盖方案,所以F(4)=5,我们已经可以观测到...

2020-03-25 16:19:37 139

原创 变态跳台阶

题目描述一只青蛙一次可以跳上1级台阶,也可以跳上2级……它也可以跳上n级。求该青蛙跳上一个n级的台阶总共有多少种跳法。题目分析:对于这样的题目,我们不妨先举一个实例进行分析,例如n=5时,无非就是下面七种跳法,只是顺序可变,然后就把问题转变为排列组合的问题了。跳法一:5个1跳法二:1个2,3个1跳法三:2个2,1个1跳法四:1个3,2个1跳法五:1个3,1个2跳法六:1个4,1个1...

2020-03-24 12:05:23 141 1

原创 跳台阶

题目描述一只青蛙一次可以跳上1级台阶,也可以跳上2级。求该青蛙跳上一个n级的台阶总共有多少种跳法(先后次序不同算不同的结果)。题目分析:对于这样的题目,我们不妨先举一个实例进行分析,例如n=5时,无非就是下面三种跳法,只是顺序可变,然后就把问题转变为排列组合的问题了。跳法一:0个2,5个1跳法二:1个2,3个1跳法三:2个2,1个1相同元素的排列组合问题,我们可以采取隔板法进行分析,例...

2020-03-24 11:51:14 123

原创 斐波那契数列

题目描述大家都知道斐波那契数列,现在要求输入一个整数n,请你输出斐波那契数列的第n项(从0开始,第0项为0)。n<=39题目分析:斐波那契数列的递推公式为:F(n)=F(n-1)+F(n-2) n>=3F(0)=0,F(1)=1所以斐波那契数列为:0、1、1、2、3、5、8、13、21、34、…现要根据一个整数n,输出斐波那契数列的第n项,我们可以依据递推公式求累加和,求...

2020-03-23 16:10:22 293

原创 旋转数组的最小数字

题目描述把一个数组最开始的若干个元素搬到数组的末尾,我们称之为数组的旋转。输入一个非递减排序的数组的一个旋转,输出旋转数组的最小元素。例如数组{3,4,5,1,2}为{1,2,3,4,5}的一个旋转,该数组的最小值为1。NOTE:给出的所有元素都大于0,若数组大小为0,请返回0。解体思路:旋转数组就是将数组最开始的n个数值依次追加到数组的末尾,所以非递减旋转数组是由两部分有序的子数组组成...

2020-03-23 15:57:21 129

原创 QML--概述

QML(Qt Meta Language,Qt元语言)是一个用来描述应用程序界面的声明式脚本语言,自Qt 4.7引入。QML具有良好的易读性,它以可视化组件及其交互和相互关联的方式来描述界面,使组件能在动态行为中互相连接,并支持在一个用户界面上很方便的复用和定制组件。Qt Quick是Qt为QML提供的一套类库,由QML标准类型和功能组成,包括可视化类型、交互类型、动画类型、模型和视图类型,粒子...

2020-03-22 00:50:07 3486

原创 学习QT之图形视图实例#-飞舞的蝴蝶

一、运行效果二、具体代码butterfly.h#ifndef BUTTERFLY_H#define BUTTERFLY_H#include <QObject>#include <QPainter>#include <QGraphicsScene>#include <QGraphicsView>#include <QGrap...

2020-03-22 00:11:36 939

原创 学习QT之图形视图框架

Graphics View(图形视图)框架结构取代了之前版本中的QCanvas模块,它提供基于图元的模型/视图编程,类似于QtInterView的模式/视图结构,只是这里的数据是图形。一、图形视图体系结构1、Graphics View框架结构的主要特点Graphics View框架结构的主要特点如下:(1)、在Graphics View框架结构中,系统可以利用Qt绘图系统的反锯齿、OPen...

2020-03-21 21:21:32 1167

原创 QT自定义控件--时钟

注:由于本人绘图刚刚开始学,所以还存在一些瑕疵,但是对于小白入门QT绘图还是很有帮助的。一、效果展示二、绘制原理详解1、绘制时钟盘首先我们需要确定绘制一个时钟表盘需要哪些参数,在此我把黑色圆环称为外部,白色圆称为内部。绘制时钟表盘我们需要确定时钟的中心(Center_pos)、外部表盘的半径(R_Edge)、内部表盘的半径(R_Inside)、圆心指针端点小圆半径(R_Pointer)...

2020-03-20 10:49:57 3661 1

原创 学习QT之自定义控件入门学习#-仪表盘

由于本人目前也是在入门学习,此实例是学习了BiLiBiLi up主:xieguimsn的视频教程,十分的感谢!写本文章的目的一来是理清一下学习思路和一些自己的理解,二来是方便以后自己查看。原创作者视频教程中有源代码的下载方式,希望大家多多支持原创。一、绘制过程详解Qt绘图是通过重写paintEvent(QPaintEvent *event)来实现的,调用这个函数有两种方式:update()和r...

2020-03-19 21:29:23 1692 1

原创 学习QT之显示SVG格式图片

SVG的英文全称是Scalable Vector Graphics,即可缩放的矢量图形。它是有万维网联盟在2000年8月制定的一种新的二维矢量图形格式,也是规范中的网格矢量图形标准,是一个开发的图形标准。SVG格式的特点如下:基于XML采用文本来描述对象具有交互性和动态性完全支持DOMSVG相对于GIF、JPEG格式的优势是,SVG是一种矢量图形格式,比GIF、JPEG等栅格格式具...

2020-03-18 23:34:49 5550

原创 学习QT之双缓冲机制

所谓双缓冲机制,是指在绘制控件时,首先将要绘制的内容绘制在一个图片中,再将图片一次性绘制到控件上。在早期的Qt版本中,若直接在控件上进行绘制工作,则在控件重绘时会产生闪烁的现象,控件重绘频繁时,闪烁尤为明显。双缓冲机制可以有效地消除这种闪烁现象。自Qt 5版本之后,QWidget控件已经能够自动处理闪烁的问题。因此,在控件上直接绘图时,不用再操心显示的闪烁问题,但双缓冲机制在很多场合仍然有其用武之...

2020-03-18 00:34:17 2056

原创 学习QT之QT绘图实例

一、绘图原理绘图就跟我们画画一样,首先需要一个画板、一个笔、一个画刷。画板用于作画,笔用于描线,画刷用于填充颜色。所以我们在作画前需要先做好这些准备,这些的具体介绍请参考我的前一篇文字学习QT之绘图原理详解。三、运行结果注:以下为部分截图四、具体代码paintera.h#ifndef PAINTAREA_H#define PAINTAREA_H#include <Q...

2020-03-17 22:13:35 2527 9

原创 学习QT之QT绘图原理详解

一、Qt绘制事件当应用程序收到绘制事件时,就会调用QWidget::paintEvent(),该函数就是绘制窗口的地方。有两种方法要求重绘一个窗口update() --把重绘事件添加到事件队列中重复调用update()会被Qt合并为一次不会产生图像的闪烁可带参数指定重绘某个区域repaint() --立即产生绘制事件一般情况下不推荐使用此方法只使用在需要立即重绘......

2020-03-16 18:01:59 6220

原创 学习QT之位置相关函数

Qt提供了很多关于获取窗体位置及显示区域大小的函数,如x(),y()和pos(),rect(),size(),geometry()等,统称为"位置相关函数"或"位置函数"。几种主要位置函数及其之间的区别如下图所示:其中,x(),y()和pos()函数的作用都是获得整个窗体左上角的坐标位置。frameGeometry()函数和geometry()函数相对应。frameGeometry...

2020-03-16 11:02:35 1187

原创 学习QT之程序开机启动动画

多数大型应用程序启动前都会在程序完全启动前显示一个动画,在程序完全启动后消失。程序启动画面可以显示相关产品的一些信息,使用户在等待程序启动的同时了解相关产品的功能,这也是一个宣传的方式。Qt中提供的QSplashScreen类实现了在程序启动过程中显示启动画面的功能下面通过一个实例来介绍它的使用:一、运行结果启动画面主窗体二、具体代码main.cpp#include "mainw...

2020-03-15 21:11:42 1772

原创 学习QT之不规则窗体

常见的窗体通常是各种方形的对话框,但有时也需要使用非方形的窗体,如原型、椭圆形、甚至于是不规则形状的对话框。利用setMask()函数为窗体设置遮罩,实现不规则窗体。设置遮罩后的窗体尺寸仍然是原窗体大小,只是被遮罩的地方不可见。下面通过一个实例来介绍它的使用:一、运行结果二、具体代码shapewidget.h#ifndef SHAPEWIDGET_H#define SHAPEWID...

2020-03-15 20:06:06 287

原创 学习QT之可扩展对话框

可扩展对话框通常用于用户对界面有不同要求的场合。通常情况下,只出现基本对话窗体;当供高级用户使用或需要更多信息是,可通过某种方式的切换显示完整对话窗体(扩展窗体),切换的工作通常由一个按钮来实现。可扩展对话框的基本实现方法是利用setSizeConstraint(QLayout::SetFixedSize)方法是对话框尺寸保持相对固定。其中,最关键的部分有以下两点。在整个对话框的构造函数中调...

2020-03-14 12:03:44 831

原创 学习QT之QTime类

QTime类的currentTime()函数用于获取当前的系统时间;QTime的toString()函数用于将获取的时间转换为字符串类型。为了方便显示,toString()函数的参数需指定转换后时间的显示格式。H/h:小时(若使用H表示小时,则无论何时都以24小时制显示小时;若使用h表示小时,则当同时指定AM/PM时,采用12小时制显示小时,其他情况下仍采用24小时制进行显示)。m:分。s...

2020-03-14 10:58:17 6099

原创 学习QT之调色板(QPalette)

在实际应用中,经常需要改变某个控件的颜色外观,如背景、文字颜色等。Qt提供的调色板类QPalette专门用于管理对话框的外观显示。QPalette类相当于对话框或控件的调色板,它管理着控件或窗体的所有颜色信息。每个窗体或控件都包含一个QPalette对象,在显示时,按照它的QPalette对象中对各部分各状态下的颜色描述进行绘制。QPalette有两个基本的概念:ColorGroup、Color...

2020-03-14 01:04:26 4140

原创 学习QT之进度条

通常,在处理长时间任务是需要提供进度条用于显示时间,告诉用户当前任务的进展情况。进度条对话框的使用方法有两种,即模态和非模态方式。模态方式的使用比较简单方便,但必须使用QApplication::processEvents(),使时间循环保持正常进行状态,以确保应用不会被阻塞;若使用非模态方式,则需要通过QTime实现定时设置进度条的值。Qt提供了两种显示进度条的方式,一种是QProgressB...

2020-03-13 22:18:56 3624

原创 学习QT之工具盒类

工具盒类又称为QToolBox。QToolBox提供了一种列状的层叠窗体,而QToolButton提供了一种快速访问命令或者选择项的按钮,通常在工具条中使用。抽屉效果是软件界面设计中的一种常用形式,可以以一种动态直观的方式在大小有限的界面上扩展出更多的功能。以下通过一个QQ好友列表的实例来详细说明工具盒类的使用:一、步骤创建一个类,继承自QToolBox;创建若干QToolButton...

2020-03-13 11:28:25 632

原创 学习QT之基本对话框

常用的标准基本对话框包括:标准文件对话框(QFileDialog)、标准颜色对话框(QColorDialog)、标准字体对话框(QFontDialog)、标准输入对话框(QInputDialot)、标准消息对话框(QMessageBox)各种标准基本对话框通过调用陪你过各自不同的静态函数来完成其功能,具体说明见下表:相关类类说明静态函数函数说明getOpenFile...

2020-03-12 23:08:49 384

原创 C++基础知识总结-3

一、隐式类型转换首先,对于内置类型,低精度的变量给高精度的变量赋值是会发生隐式类型转换。其次,对于只存在单个参数的构造函数的对象构造来说,函数调用可以直接使用该参数传入,编译器会自动调用其构造函数生成临时对象。二、new/delete和molloc/free的区别首先,new/delete是C++的关键字,而molloc/free是C语言的库函数,后者使用不许指明申请内存空间的大小,对于类类...

2020-03-08 11:29:32 389

原创 C++基础知识总结-2

一、为什么析构函数必须是虚函数?为什么默认的析构函数不是虚函数?(1)、将可能会被继承的父类的析构函数设置为虚函数,可以保证当我们new一个子类,然后使用基类指针指向该子类对象时,释放基类指针可以释放掉子类的空间,防止内存泄漏。(2)、C++默认的析构函数不是虚函数是因为虚函数需要额外的虚函数表和虚表指针,占用额外的内存。而对于不会被继承的类来说,其析构函数如果是虚函数,就会浪费内存。因此C+...

2020-03-06 17:03:15 248

原创 C++基础知识总结-1

C++基础知识总结-1一、static关键字的作用1、全局静态变量在全局变量前加上关键字static,全局变量就定义成一个全局静态变量。静态存储区,在整个程序运行期间一直存在。初始化:未经初始化的全局静态变量会被自动初始化为0(自动对象的值是任意的,除非它被显示初始化);作用域:全局静态变量在声明他的文件之外是不可见的,准确地说是从定义之处开始,到文件结尾。2、局部静态变量在局部变...

2020-03-06 11:18:50 246

原创 学习QT之信号槽机制详解

学习QT之信号槽机制详解一、Qt信号槽机制概念:信号槽是Qt框架引以为豪的机制之一。所谓信号槽,实际就是观察者模式。当某个事件发生之后,比如:按钮检测到自己被点击了一下,它就会发出一个信号(signal)。这种发出是没有目的的,类似广播。如果有对象对这个信号感兴趣,他就会使用连接(connect)函数,意思是,将想要处理的信号和自己的一个函数(称为槽(slot))绑定来处理这个信号。也就是说,...

2020-03-05 14:09:51 1566

原创 排序算法之快速排序

排序算法之快速排序分析思路:快速排序思想,选择一个标值,然后从两边依次找出比标值大的值和比标值小的值,然后进行交换,如此一轮之后,序列就变为比标值小的在标值的左边,比标值大的在标值右边。然后我们分别对左子列递归,对右子列递归。具体代码:void Quick_Sort(int array[], int left,int right){ if (left < right) { i...

2020-03-04 16:34:03 175

WinPcap中文文档

WinPcap中文文档

2022-02-22

ipad_frame.zip

Qt实现的ipad框架,支持滑动效果

2021-01-10

QLineBoard.zip

Qt自定义控件QLineBoard,一个输入框,一点击就弹出键盘,可以在键盘中点击输入

2020-12-26

基于Qt自定义的滑动选择器

这是基于Qt实现的自定义滑动选择器,滑动选择器支持两种模式:水平模式和垂直模式,可自行设置。另外提供了接口可设置各类颜色、选择器值域等。

2020-05-26

基于QT的界面滑动切换

这是模仿手机界面的平滑切换工程,在工业触摸板上很有实用价值。具体效果可以去我的博客看, 。

2020-05-19

基于QT开发的无触摸屏系统按键解决方案

这是大三嵌入式课程的一个实验题目,主要是在树莓派上用QT开发一个控制界面,控制小灯的亮灭,呼吸灯等等。这个题目主要是在于练习QT的绘图功能,也可以用来应对无鼠标无触摸屏等工程现场。

2020-02-14

基于QT开发的TCP服务器

这是一个基于QT开发的TCP服务器,这是我之前服务外包大赛的时候写的,运行效果良好,欢迎大家一起学习讨论。

2020-02-13

基于QT开发的简易智能家居系统框架

这是一个基于QT开发的智能家居简易框架,整体框架已经架构好,可以继续向外扩展功能界面。

2020-02-13

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

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