自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

Shijia Yin

浮生常恨欢娱少,肯爱千金轻一笑

  • 博客(245)
  • 收藏
  • 关注

转载 ubuntu 下载完整deb包及依赖包

下载 deb 依赖包。

2022-10-25 22:28:13 2593 1

原创 Docker笔记

用户既可以使用 docker load 来导入镜像存储文件到本地镜像库,也可以使用 docker import 来导入一个容器快照到本地镜像库。这两者的区别在于容器快照文件将丢弃所有的历史记录和元数据信息(即仅保存容器当时的快照状态),而镜像存储文件将保存完整记录,体积也要大。

2022-10-18 20:21:21 371

原创 VirtualBox使用笔记

将未使用空间填充0,只有这样VirtualBox才能对该部分空间进行压缩。

2022-10-16 11:16:15 384

原创 网络编程之select-poll-epoll使用模板

select#include <stdio.h>#include <stdlib.h>#include <sys/ioctl.h>#include <sys/socket.h>#include <sys/time.h>#include <netinet/in.h>#include <errno.h>#define SERVER_PORT 12345#define TRUE 1

2022-05-03 16:29:12 382

原创 LLVM问题记录

lld编译报错到LLVM的下载页面,下载libunwind,将其中的mach-o文件夹拷贝到LLVM根目录的include目录下

2021-08-03 22:13:29 227

原创 妈妈再也不用担心我的工程构建问题啦(VSCode+CMake开发Qt)

本文介绍了在Win10下如何利用CMake+VS Code来进行Qt开发文章目录预备条件第一部分:用QtCreator搭建CMake工程第二部分:用VS Code开发Qt第三部分:VS Code下实现Qt代码补全QA预备条件安装Qt将Qt的工具链路径添加到环境变量安装CMake安装VS Code安装VS Code插件:C/C++(C/C++语法)、CMake(CMake语法提示)、CMake Tools(快速搭建CMake工程,因为我们使用了Qt Creator,暂时用不到该工具)以.

2021-05-30 23:20:51 1091 2

原创 一文掌握Socket编程

文章目录API概览更多细节socket()bind()listen()accept()connect()select()getsockname() 和 getpeername ()gethostbyname() 和 gethostbyaddr()setsockopt()ioctlsocket()inet_pton()与inet_ntop()协议与地址使用TCP的服务器客户机举例服务器客户端使用UDP的服务器客户机举例服务器客户机API概览接口描述socket创建一个新的确定类型的套

2021-01-15 20:38:02 484

原创 PLC简史

翻译自维基百科先来看一个小视频 简介可编程逻辑控制器(PLC)或可编程控制器是一种坚固耐用的工业数字控制器,适用于控制生产流程,例如流水线,机器人设备或任何需要高可靠性,易于编程和故障诊断的场合。PLC的范围从具有与处理器集成在一起的外壳中的具有数十个输入和输出(I / O)的小型模块化设备到具有数千个I / O的大型机架安装模块化设备,并且通常可以连接到其他PLC和SCAD.

2021-01-15 19:57:06 2449

原创 迪克莫利-PLC之父

迪克莫利:PLC之父,2017年去世。下面是的一篇发表于2003年的迪克莫利访谈先来看一个小短片 B403-谁是PLC之父? 迪克莫利-“PLC之父”迪克·莫利是Modicon公司(现在属于施耐德自动化)的创始人和PLC的发明者。今天,他作为国际知名的专家,活跃于计算机设计、人工智能、自动化以及未来工厂等领域。莫利是一个工程师、顾问以及发明家,他在全世界拥有超过20个专利。他还.

2021-01-13 20:44:40 3290

原创 苏格拉底让弟子拾麦穗的故事

有一天,柏拉图问苏格拉底:什麽是爱情?苏格拉底说:我请你穿越这片稻田,去摘一株最大最金黄的麦穗回来,但是有个规则:你不能走回头路,而且你只能摘一次。于是柏拉图去做了。许久之后,他却空著双手回来了。苏格拉底问他怎麽空手回来了?柏拉图说道:当我走在田间的时候,曾看到过几株特别大特别灿烂的麦穗,可是,我总想著前面也许会有更大更好的,於是就没有摘;但是,我继续走的时候,看到的麦穗,总觉得还不如先前看到的好,所以我最后什麽都没有摘到。苏格拉底意味深长地说:这,就是爱情。又一天,柏拉图问苏格拉底:什麽是婚姻

2020-08-16 22:42:46 15104

原创 Qt之属性系统概览

简述在认识Qt的属性系统之前,先理解一下什么是属性系统。通常情况,一种语言是无法认识另一种语言的语法组件的,比如python不认识C++的成员变量,C++也无法认识python中的成员变量,属性系统可以理解为不同语言之间沟通的桥梁,C++,QML,python,JS,CSS都能认识。这样,不同语言之间就可以交互了。Qt的属性系统也是一种语言沟通桥梁,Qt通过它的属性系统把C++的语法元素暴露给QML,QSS等,这样它们就可以就行交互了。Qt提供一个类似于其它编译器供应商提供的复杂属性系统(Proper

2020-07-12 19:15:46 572

原创 Qt之元对象系统

简述Qt的元对象系统提供了信号槽机制,运行时类型信息(RTTI),和动态属性系统。使用元对象系统的三个条件:QObject类为所有利用元对象系统的类提供基类在类声明私有部分的Q_OBJECT宏,用于使能元对象特性,如动态属性,信号槽元对象编译器(moc)为每一个QObject子类提供必要的代码,来支持元对象特性moc工具读取C++源文件。如果它找到一个或者多个包含Q_OBJECT宏的类声明,它会产生额外的C++源文件用以提供元对象系统所需代码。除了提供信号槽机制用于对象间通信外,元对象系统

2020-07-06 23:59:39 978

原创 Qt之QThread基本用法

简述多线程与多进程是现代操作系统中非常重要的两个概念,多进程强调分工,多线程强调合作,本文只谈多线程。多线程有硬件多线程和软件多线程之分,下面只谈软件多线程。多线程的能力一般是由操作系统(如Windows、Linux)提供,不同的操作系统在多线程的实现上是不同的,而且呈现出来的接口也是不统一的。很多程序开发框架都提供了独立于操作系统平台的多线程接口。Qt的QThread提供了一个独立于平台的方法管理多线程。一个QThread对象管理着一个线程。QThread通过执行run()开始。默认情况下,run

2020-06-06 16:49:24 5437

原创 Qt之调用百度API

近几年来,语音识别、图像识别等AI技术发展得如火如荼。国内外各大科技巨头积极布局(各大AI 开放平台一览),百度是其中比较优秀的一家。百度希望通过百度大脑来实现战略转型,从一家无恶不作的广告推送、流量变现公司转型为一个高大上的AI开放平台。本篇文章介绍了如何利用Qt来调用百度云的AI接口实现图像识别。本次设计的最终效果如下官方的新手指南对如何接入AI开放平台做了详尽的引导。下面介绍如何利用Qt进行AI接口调用,本次调用以身份证为例。阅读完新手指南后,获得了Access_Token,将其保存在.

2020-05-29 10:51:13 4174 6

原创 Qt之QHttpMultiPart与QHttpPart

向服务器请求数据,Post是一种常见的方法,使用Post需要三种元素:URL,Header,Body。Qt中使用QNetworkAccessManager来提供Post,一共三种接口,如下所示:QNetworkReply *QNetworkAccessManager::post(const QNetworkRequest &request, QIODevice *data);QNetworkReply *QNetworkAccessManager::post(const QNetworkRe

2020-05-21 20:33:30 1994 1

原创 Qt之Post与字节流

百度的AI开发者平台提供了许多AI接口,可以用来进行语音识别、图像识别等等。今天尝试了图像识别。其中用到了POST。POST是网络编程中一种常见的数据请求方法,另一个常见的方法是GET,详见HTTP 方法:GET 对比 POST。尽管不同语言对POST都有着自己的实现,但呈现出来的API却是大同小异的。Qt中使用QNetworkAccessManager来提供POST,一共三种接口,如下所示:QNetworkReply *QNetworkAccessManager::post(const QNetw

2020-05-19 20:36:51 834

原创 Qt之SSL问题

简述传输层安全性协议(英语:Transport Layer Security,缩写:TLS)及其前身安全套接层(英语:Secure Sockets Layer,缩写:SSL)是一种安全协议,目的是为互联网通信提供安全及数据完整性保障。网景公司(Netscape)在1994年推出首版网页浏览器-网景导航者时,推出HTTPS协议,以SSL进行加密,这是SSL的起源。在浏览器、电子邮件、即时通信、网络传真等应用程序中,广泛支持这个协议。主要的网站,如Google、Facebook等也以这个协议来创建安全连线,发

2020-05-19 18:59:52 1819

原创 Linux设备驱动之字符设备驱动

简述Linux设备驱动有三种:字符设备驱动、块设备驱动、网络设备驱动。其中字符设备驱动最为基础。Linux设备驱动目前有三种开发架构:原始架构、平台总线架构、设备树架构。三种架构理解难度依次上升,但开发难度依次下降。本篇文章介绍原始架构。字符设备驱动开发最关键的两个数据结构是cdev和file_operations,如果想要自动生成设备节点,还要用到class结构。cdev结构体用来描述一...

2020-04-22 21:49:26 538

原创 Linux设备驱动之模块

引言linux设备驱动的作用是隐藏具体的硬件细节,将所有的设备都抽象成一个个文件供应用程序调用,也就是说,在应用程序员的眼中,所有的硬件都是文件,U盘是文件,磁盘是文件,LED灯是文件,引脚是文件,蜂鸣器是文件,万物皆文件。Linux内核非常庞大,组件也非常之多,我们有两种方法来将这些组件包含到内核中直接编译到Linux内核中,这种方法会导致内核很大,而且每次需要添加或者删除组件的时候都得...

2020-04-22 21:48:41 552

原创 Qt之QDir

简述利用QDir,我们可以获取目录结构和它们的内容。QDir被用来操作路径,并获取和该路径有关的信息。QDir也可以被用来处理Qt的资源系统。Qt使用"/“作为全局目录分隔符。如果你总是用”/"作为目录分隔符来表示一个路径,Qt将会把你给的路径转换成本地操作系统所对应的路径形式。QDir既可以使用相对路径,也可以使用绝对路径。绝对路径的例子如下: QDir("/home/user/D...

2020-04-11 17:50:41 2120 1

原创 Qt之QFileDialog简单用法

简述QFileDialog提供了一个对话框用于选择文件或目录。QFileDialog让用户可以遍历文件系统目录来选择文件或目录。使用创建一个QFileDialog最简单的方式是使用静态函数。如下所示:fileName = QFileDialog::getOpenFileName(this, tr("选择一张图片"), "C:/Users/jiage/Desktop", tr("Image...

2020-04-10 14:54:42 18105

原创 Qt之QSlider圆形滑柄样式

简述QSlider的滑柄样式设计遵循box model,但是在设计的过程中,我发现,边界的宽度变化会对滑柄高度造成挤压,这种挤压使得滑柄样式设计需要一些特殊处理。下面以圆形滑柄样式设计来介绍这种挤压的处理方法。挤压通常border的变化不会对contents造成影响,以QPushButton为例,如下所示:但是在QSlider的handle中却会出现如下情况contents的...

2020-04-06 22:51:58 2125

原创 Qt之可视化QSS生成器(初探)

简述QSS是Qt的样式表,类似于CSS,目前主要支持CSS2。写代码调样式非常不直观,因此需要一个所见即所得的可视化样式生成器,网上有很多CSS样式生成器,最适合网页开发人员的10款CSS代码生成器里面介绍了一些常用的CSS样式生成器,但是CSS和QSS毕竟不完全一样,所以生成的代码需要修改,这些修改的工作量也是不小的。Qt大神刘典武先生写了一个皮肤生成器,该生成器可以快速地生成整套皮肤,着实...

2020-04-02 23:18:58 3406 1

原创 Qt之QGraphicsDropShadowEffect

简述QGraphicsDropShadowEffect可以为Qt中的控件提供阴影效果。使用setColor()函数来设置阴影颜色,使用setOffset来设置阴影偏移,使用setBlurRadius()来设置阴影模糊半径。默认的阴影是半透明黑灰色,1px模糊半径,向右下角8px偏移。使用效果源码QPushButton pushBtn = new QPushButton("tes...

2020-04-02 13:13:59 4235

原创 Qt之QColorDialog

简述QColorDialog提供了一个对话框用于选择颜色。静态函数getColor()可以用于展示出对话框允许用户指定一个颜色。通过指定额外的选项参数ShowAlphaChannel,可以让用户在选择颜色的同时选择透明度。通过点击"Pick Screen Color",用户可以拾取程序窗口内的颜色。使用效果源码构造函数 colorDialog = new QColorD...

2020-03-31 14:28:39 4579 2

原创 Qt之应用部署(Windows)

英文可以的同学建议直接看Qt for Windows - Deployment简述本文介绍了Qt在Windows上的部署过程。Windows 部署工具windeployqt是一个用于将Qt部署到Windows的小工具。这个工具可以在 QTDIR/bin/windeployqt下面找到。它需要在命令行环境下使用。windeployqt以一个.exe或者一个含有.exe的文件夹作为参数。...

2020-03-28 17:08:54 3637

原创 Qt之模型-视图编程(自定义模型)

简述在构建一个模型类之前,需要先考虑清楚这个模型面对的是一个怎样的数据源,只有清楚数据源的特性,才能知道要利用哪个基类,实现哪些接口。比如,如果数据结构可以被表示为列表或者表格,我们可以通过子类化QAbstractListModel或者QAbstractTableModel来实现。如果底层数据结构是层级结构,我们就需要考虑子类化QAbstractItemModel。这篇文章介绍的例子是实现一个...

2020-03-25 21:18:20 639

原创 Qt之模型-视图编程(处理项目视图的选择)

简述项目视图类使用选择模型提供一种对选择行为的通用描述。项目的选择状态信息被存储在QItemSelectionModel类的实例中。QItemSelectionModel维护着选择实体(QItemSelection),选择实体由选择范围构成,一个选择范围只需要起点(start index)和终点(end index)便可唯一确定。非连续的选择选择范围则需要多个选择范围来描述。提示: 当进行...

2020-03-25 14:38:24 611

原创 Qt之模型-视图编程(代理类)

简述模型视图架构提供了代理类用来负责用户的交互。简单的代理类可以子类化QItemDelegate。如果QItemDelegate无法满足要求,则应当考虑QAbstractItemDelegate。代理所用的编辑器可以使用现成的输入控件,也可以直接处理events。使用现成的代理类Qt中的标准视图使用QItemDelegate来提供编辑功能。所有的标准角色都由标准视图所采用的默认代理来处...

2020-03-24 19:44:41 1720

原创 Qt之模型-视图编程(视图类)

简述在模型/视图框架中,视图展示数据的方式与模型表示数据的方式可能有所不同。QAbstractItemModel与QAbstractItemView所提供的标准化接口让获取数据与表示数据表示相分离。视图可以自己渲染数据项目的显示,也可以使用代理来一起处理显示与编辑。除了数据项目的显示,视图还负责数据项目之间的导航。视图实现了诸如文本按钮和拖拽等基本用户接口特性。视图通过使用selectio...

2020-03-24 17:08:03 650

原创 Qt之模型-视图编程(模型类)

简述在正式学习如何处理选择的项目之前,认识模型/视图框架中的一些基础概念对后续的学习将会很有帮助。基本概念在模型/视图框架中,模型为视图和代理获取数据提供了标准的接口。在Qt中,这个标准接口由QAbstractItemModel类定义。无论数据项目在底层数据结构中是如何存储的,QAbstractItemModel都会以包含项目表的层级结构来表示这些数据。 视图会按照这种接口来获取模型中的数据...

2020-03-24 14:07:37 349

原创 Qt之模型-视图编程(使用模型-视图框架)

简述下面的内容介绍了如何在Qt中使用模型/视图框架。Qt中包含的两个模型Qt提供的两个标准模型是QStandardIteModel和QFileSystemModel。QStandardItemModel是一个多功能模型,可用于表示列表,表和树视图所需的各种不同数据结构。该模型还保存数据项。 QFileSystemModel是用于维护有关目录内容的信息的模型。因此,它不会存储项目数据,只是简单...

2020-03-24 09:11:21 558

原创 Qt之模型-视图编程(模型-视图编程概览)

简述Qt包含一组项目视图类,这些项目视图类使用模型/视图体系结构来管理数据与其呈现给用户的方式之间的关系。此体系结构引入的功能分离为开发人员提供了更大的灵活性,可以自定义项目的表示形式,并提供标准的模型接口,以允许将各种数据源与现有项目视图一起使用。模型视图架构模型视图控制器(MVC)是一种源自Smalltalk的设计模式,通常在构建用户界面时使用。在《Design Patterns》中,G...

2020-03-23 19:09:15 497

原创 Qt之容器控件(QDockWidget)

简述QDockWidget类提供了一个小部件,它可以停靠在QMainWindow内,也可以作为桌面上的顶层窗口浮动。功能详述QDockWidget提供了铆接(停靠)控件的概念,也叫做工具窗口。铆接窗口是QMainWindow中心控件的辅助窗口,停放在QMainWindow的铆接区域,铆接区域如下所示:铆接部件可以在铆接区域移动,或者浮动。QDockWidget提供了API来控制铆接部...

2020-03-22 17:10:41 1581

原创 Qt之容器控件(QMdiArea)

简述QMdiArea(Multiple Document Interface Area)提供了一个可以同时显示多个文档窗口的区域。本质上来说,QMdiArea就像是多文档窗口的窗口管理器。例如,它将它所管理的窗口绘制在它上面,并且以级联或者平铺的方式放置这些窗口。通常情况下,QMdiArea用作QMainWindow的中心控件,以此来创建一个MDI应用程序。但是,它也可以被放置在任何布局类中。...

2020-03-22 14:08:59 16846

原创 Qt之容器控件(QStackedWidget)

简述QStackedWidget提供了一个控件栈,在这个栈中,一次只能显示一个控件。QStackedWidget可以提供与QTabWidget类似的用户接口。QStackedWidget没有提供内建方法用于页面之间的切换。页面的切换通常是通过QComboBox或者QListWidget来触发。其它接口与QTabWidget类似,参见Qt之容器控件(QTabWidget)使用效果...

2020-03-21 20:09:47 10364

原创 Qt之容器控件(QTabWidget)

简述QTabWidget类提供了一堆选项卡式窗口小部件。功能详述选项卡小部件提供了一个选项卡栏(请参阅QTabBar)和一个“页面区域”,该页面区域用于显示与每个选项卡相关的页面。默认情况下,选项卡栏显示在页面区域上方,但是可以使用不同的配置(请参见TabPosition)。每个选项卡都与一个不同的窗口小部件(称为页面)相关联。页面区域中仅显示当前页面。其他所有页面均被隐藏。用户可以通过单击...

2020-03-21 15:28:39 25188 6

原创 Qt之容器控件(QToolBox)

简述QToolBox类提供一列带标签的窗口小部件项目。功能详述工具箱是一个小部件,在这个小部件显示着一列带标签的选项卡。其中,当前选项卡下显示的当前项目。每个项目都有一个itemText(),一个可选的itemIcon(),一个可选的itemToolTip()和一个widget()。可以使用setItemText(),setItemIcon()和setItemToolTip()更改项目的属...

2020-03-21 11:13:28 4792

原创 Qt之容器控件(QStrollArea)

简述QScrollArea类提供了一个窗口小部件的滚动视图。滚动区域用于显示框架内子窗口小部件的内容。如果窗口小部件超出框架的大小,则视图可以提供滚动条,以便可以查看子窗口小部件的整个区域。子窗口小部件必须使用setWidget()指定。QScrollArea中的很多功能继承自QAbstractScrollArea。功能详述滚动条的外观取决于当前设置的滚动条策略。您可以使用QAbstra...

2020-03-20 22:14:14 1011

原创 Qt之容器控件(QGroupBox)

简述QGroupBox小部件提供带有标题的组框框架。一个组框提供一个框架,一个标题,一个快捷键,并在其内部显示其他各种小部件。键盘快捷键将键盘焦点移到组框的子窗口小部件之一。功能描述QGroupBox还允许您设置标题(通常在构造函数中设置)和标题的对齐方式。组框可以被选中。可选中组框中的子窗口小部件是否启用,取决于是否选中了该组框。您可以通过启用flat属性来最小化组框的空间消耗。在大多...

2020-03-20 13:01:44 19889 1

空空如也

空空如也

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

TA关注的人

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