- 博客(71)
- 收藏
- 关注
原创 计算机网络与通讯知识总结
1)FTP:文件传输 SSH:远程登录 HTTP:网址访问。3)交换机:工作层级是数据链路层(基于MAC地址),主要功能是。、MAC地址学习与转发,典型应用是连接办公室内的多台电脑。2)路由器:工作层级是网络层(基于IP地址),主要功能是。、NAT、路由选择,典型应用是连接家庭网络与互联网。
2025-02-24 13:41:48
287
原创 C++之回调函数
指针是一个变量,是用来指向内存地址的。一个程序运行时,所有和运行相关的物件都是需要加载到内存中,这就决定了程序运行时的任何物件都可以用指针来指向它。函数是存放在内存代码区域内的,它们同样有地址,因此同样可以用指针来存取函数,把这种指向函数入口地址的指针称为函数指针。// 也可以用宏定义的方式来声明函数指针// 定义一个函数指针fp,初始化指向testFun函数// 通过函数指针fp,调用testFun函数// 输出:3return 0;由上知道:*
2024-12-18 14:50:33
1147
原创 C++11之新特性之function和bind
std::function实现了函数的存储,即先将可调用实体保存起来,在需要的时候再调用。关于可调用对象转换为std::function对象需要遵守以下两条原则转换后的std::function对象的参数能转换为可调用对象的参数;可调用对象的返回值能转换为std::function对象的返回值。std::function可以绑定全局函数,静态函数,但是绑定类的成员函数时,必须要借助std::bind的帮忙。
2024-12-18 14:15:31
915
原创 C++设计模式之工厂模式
IFactory 中只有一个抽象方法时,或许还看不出抽象工厂模式的威力。实际上抽象工厂模式主要用于替换一系列方法。例如将程序中的 SQL Server 数据库整个替换为 Access 数据库,使用抽象方法模式的话,只需在 IFactory 接口中定义好增删改查四个方法,让 SQLFactory 和 AccessFactory 实现此接口,调用时直接使用 IFactory 中的抽象方法即可,调用者无需知道使用的什么数据库,我们就可以非常方便的整个替换程序的数据库,并且让客户端亳不知情。
2024-12-18 11:40:09
1130
原创 HTML_CSS入门学习
HTML 是用来描述网页的一种语言。HTML 指的是超文本标记语言HTML不是一种编程语言,而是一种标记语言标记语言是一套标记标签HTML使用标记标签来描述网页。
2024-12-17 08:45:58
662
原创 多线程和多进程概念介绍
并发(concurrency)在生活中随处可见,边走路边说话,边听歌边写代码。计算机术语中的"并发",指的是在单个系统里同时执行多个独立的活动,而不是顺序的一个接一个的执行。对于单核 CPU 来说,在某个时刻只可能处理一个任务,但它却不是完全执行完一个任务再执行一个下一任务,而是一直在任务间切换,每个任务完成一点就去执行下一个任务,看起来就像任务在并行发生,虽然不是严格的同时执行多个任务,但是我们仍然称之为并发。真正的并发是在在多核 CPU 上,能够真正的同时执行多个任务,称为硬件并发。
2024-12-16 16:01:02
965
原创 XML基础学习
XML 被设计用来传输和存储数据。XML 指可扩展标记语言XML 是一种标记语言,很类似 HTML。XML 的设计宗旨是传输数据,而非显示数据。XML标签没有被预定义。您需要*自行定义标签。XML 被设计为具有自我描述性。XML 是W3C 的推荐标准。XML 元素指的是从(且包括)开始标签直到(且包括)结束标签的部分。元素可包含其他元素、文本或者两者的混合物。元素也可以拥有属性。在上例中, 和 都拥有元素内容,因为它们包含了其他元素。
2024-12-16 14:47:09
602
原创 Qt-布局使用总结
水平布局、垂直布局除了构造时的方向(LeftToRight、TopToBottom)不同外,其它均相同。下面我们以 QHBoxLayout 为例,来讲解 QBoxLayout 的基本使用。QGridLayout:栅格布局,也被称作网格布局(多行多列)。栅格布局将位于其中的窗口部件放入一个网状的栅格之中。QGridLayout 需要将提供给它的空间划分成的行和列,并把每个窗口部件插入并管理到正确的单元格。
2024-12-13 14:29:40
1023
原创 Qt-对话框使用总结
设置了对话框的显示设置后,会导致该对话框在模态显示的时候如果设置了父窗口指针,会导致模态的设置无效,这时需要在该函数中加一个参数Qt::Dialog就可以了。,参数的作用分别是:指定父窗口、设置窗口标题、设置对话框中的标签的显示文本、设置输入的字符串的显示模式、设置输人框中的默认字符串和设置获取按下按钮信息的 bool 变量。,其中的参数100表示默认的数值是100,-1000表示可输入的最小值是-1000,1000表示可输人的最大值是1000,10表示使用箭头按钮,数值每次变化10。
2024-12-13 13:52:56
978
原创 Qt 2D绘图之五:图形视图框架的结构、坐标系统和框架间的事件处理与传播
*每一个在场景中的图形项除了拥有一个图形項的本地坐标和边界矩形外,还都拥有一个场景坐标(QGraphicsItem: :scenePos())和一个场景中的边界矩形(QGraphicsItem::sceneBoundingRect())。然后使用itemAt()函数来返回指定坐标处最顶层的图形项,这里返回的就是刚才添加的矩形图形项。代码中使用了 QGraphicsView类中的函数来设置场景中的背景和前景,其实也可以使用QGraphicsScene中的同名函数来实现,不过它们的效果并不完全 一样。
2024-12-04 14:29:01
2182
原创 Qt 2D绘图之四:绘图中的其他问题
*update()函数不会立即进行重绘,要等到Qt返回主事件循环后才会进行,所以多次调用update()函数一般只会引起一次paintEvent()函数调用。而调用repaint()函数会立即调用paintEvent()函数来重绘部件,只有在必须立即进行重绘操作的怡况下(比如在动画中),才使用repaint()函数。Qt也会通过合并多个重绘事件为一个事件来加快绘制,当update()函数被调用多次,或者窗口系统发送了多个重绘事件,那么Qt就会合并这些事件成为一个事件,而这个事件拥有最大的需要重绘的区域。
2024-12-02 11:50:30
777
原创 Qt 2D绘图之三:绘制文字、路径、图像、复合模式
参考文章链接:Qt 2D绘图之三:绘制文字、路径、图像、复合模式除了绘制图形以外,还可以使用QPainter::darwText()函数来绘制文字,也可以使用QPainter::setFont()设置文字所使用的字体,使用QPainter::fontInfo()函数可以获取字体的信息,它返回QFontInfo类对象。在绘制文字时会默认使用抗锯齿。下面仍然在上一节的程序中进行代码演示,更改paintEvent()的内容如下:void Widget::paintEvent(QPaintEvent *){Q
2024-12-02 11:45:47
1043
原创 Qt 2D绘图之二:抗锯齿渲染和坐标系统
Qt的坐标系统是由QPainter类控制的,而QPainter是在绘图设备上绘制的。一个绘图设备的默认坐标系统中原点(0, 0)在其左上角,x坐标向右增长,y坐标向下增长。在基于像素的设备上,默认的单位是一个像素,而在打印机上默认的单位是一个点(1/72英寸)。我们先在原点(0,0)绘制了一个长宽都是100像素的红色矩形,又在(-50,-50)点绘制了一个同样大小的黄色矩形。可以看到,我们只能看到黄色矩形的四分之一部分。运行程序,效果如下图所示。
2024-12-02 09:46:28
1156
原创 Qt 2D绘图之一:基本图形绘制和渐变填充
参考文章链接:Qt 2D绘图之一:基本图形绘制和渐变填充2D 绘图系统如下:2D 绘图主要是 QPainter、QPaintDevice、QPaintEngine 三个类,主要类的作用(其关系见图示)在QPainter中提供了一些方便的函数来绘制常用的图形,而且还可以设置线条和边框的画笔以及进行填充的画刷。新建Qt Gui应用,项目名称为 myDrawing,基类选择QWidget,类名为Widget。建立完成后,在widget.h文件中声明重绘事件处理函数:绘制基本图形在widget.cpp文件
2024-11-30 17:02:05
967
原创 Qt之样式表设置总结。。。持续更新
Qt样式表是一个可以自定义部件外观的十分强大的机制,可以用来美化部件。Qt样式表的概念、术语和语法都受到了HTML的层叠样式表(Cascading Style Sheets, CSS)的启发,不过与CSS不同的是,Qt样式表应用于部件的世界。样式表特性:1)层叠性:是处理样式发生冲突的一种能力,只有在多个选择器匹配到同一个 Widget 才会发生层叠性。}");}");这两个选择器匹配到同一个按钮,但后一个样式会覆盖前面的样式。2)级联效应。
2024-11-30 13:20:31
1482
原创 Qt容器类使用总结—QList、QVector等类
Qt库提供了一套通用的基于模板的容器类,可以用这些类存储指定类型的项。比如,你需要一个大小可变的QString的数组,则使用QVector。这些容器类比STL(C++标准模板库)容器设计得更轻量、更安全并且更易于使用。如果对STL不熟悉,或者倾向于用“Qt的方式”,那么你可以使用这些类,而不去使用STL的类。你可以用两种方式遍历容器内存储的项:Java风格的迭代器和STL风格的迭代器。Java风格的迭代器更易于使用,并且提供了更高级的功能;
2024-11-29 16:56:06
1403
原创 Qt对象树与元对象系统
例如,当关闭一个消息对话框(message box)后要销毁它时,消息对话框中的按钮和标签也会被销毁,这也正是我们所希望的,因为按钮和标签是消息对话框的子部件。这个函数尝试将它的参数转换为尖括号中的类型的指针,如果是正确的类型,则返回一个非零的指针,如果类型不兼容则返回0。可以看到,当关闭窗口后,因为该窗口是顶层窗口,所以应用程序要销毁该窗口部件(如果不是顶层窗口,那么关闭时只是隐藏,不会被销毁),而当窗口部件销毁时会自动销毁其子部件。这里只是说明了它的一些应用,关于它的具体实现机制,这里不再讲述。
2024-11-29 16:24:00
668
原创 Qt-QString常用成员函数总结
在这个例子中,“%1” 被 “time” 替换,“%2 被 “2019-5-30” 替换,”%3" 被 “value” 替换,而 “%4” 被 25.8 替换。类似的还有 left() 和 right(),分别返回左起n个字符(左截取)和右起n个字符(右截取),相比之下,mid() 可以从任意起点开始截取子串,功能更加强大,也更通用。若需要过滤掉字符串两端的空白符(‘\t’, ‘\v’, ‘\f’, ‘\r’, ‘\n’, 和’ '),可以使用 trimmed() 函数。第二个参数为:基数。
2024-11-29 15:19:49
615
原创 Qt 窗口操作函数(置顶、全屏,最大化最小化按钮设置等)
1)将要全屏的 Qt 子窗口调用 setWindowFlags(Qt::Window) 将其类型提升为顶级窗口模式,然后调用 showFullScreen() 函数将子窗口全屏显示。2)当然全屏后还要恢复正常,即调用 setWindowFlags(Qt::subwindow) 将子窗口设置为非顶级窗口,再调用 showNormal() 还原子窗口显示。在使用 QDialog 时,默认情况下只有 “这是什么” 和 “关闭” 按钮,但是我们习惯有最大化和最小化按钮。即得到屏幕分辨率,如 1024*768。
2024-11-29 14:29:33
1115
原创 Qt—QLineEdit 使用总结
豆瓣电影的搜索输入框,没有输入任何字符时,显示“电影、影人、影院、电视剧”这些占位文字,对用户输入作相关提示。echoLineEdit->setPlaceholderText("电影、影人、影院、电视剧");
2024-11-29 11:23:03
758
原创 Qt—QLabel 使用总结
首先我们构造一个 QLabel 对象。通过调用 setText 可以为标签设置文本(Hello World),这时标签就可以正常显示出来了。为了显示更佳的效果,我们可以通过调用 setStyleSheet 来设置样式。
2024-11-28 11:06:42
986
原创 Qt程序发布及打包成exe安装包
4)选择应用程序的主执行文件,也就是你编译生成的 exe 文件,并下面点击 “Add folder ”,把所有你的程序运行需要的 dll 和资源以及配置文件放在一个文件夹里,选择这个文件夹,然后点击下一步;3)加入指令windeployqt XXX.exe即可,后面的XXX.exe可以是将生成的可执行文件直接拖入即可,会包含exe的文件路径,生成的Qt的dll也会在可执行文件目录里。6)这里可以选择 “许可文件”,“安装前的文件”(如 Readme 文件等),“安装后显示信息” 等,然后点击下一步;
2024-11-26 13:58:50
950
原创 QPalette类使用总结
在实际的应用中,经常需要对某个控件的颜色外观,如背景、前景色等,进行设置。Qt 中提供的调色板 QPalette 类就是专门用于管理控件的外观显示。QPalette 类相当于对话框或控件的调色板,管理着控件和窗体的所有颜色。每个窗体和控件都包含一个 QPalette 对象,在显示时,对其做相应的设置即可。QPalette 有两个基本的概念:一个是ColorGroup;一个是ColorRole。
2024-11-06 11:28:03
364
原创 Qt常用基础控件总结-对话框
消息对话框用于向用户显示一些信息,或者接收用户的答案。QMessageBox 类继承自 QDialog,是 Qt 内部预定义的一种对话框。消息对话框有很多种形式,下图是一个综合的消息对话框,其中描述了每个位置 Qt 使用什么属性进行描述。下面是几种其他常见形式的消息对话框样式通常使用以下两种方式创建消息对话框设置属性的方式://创建对象//设置文本(属性之一)pm.exec();//显示对话框使用静态函数的方式,//使用静态函数创建一个询问消息对话框并显示,其标题为 AAA,文本为 BBB。
2024-11-01 14:50:23
1106
原创 Qt-QPainter的使用总结
QPainter是Qt框架中的一个类,主要用于在各种设备上进行2D图形绘制,如窗口、位图、打印设备等。它提供了一系列绘图函数,可以实现绘制点、线、曲线、形状、文本、图像以及复杂的绘画操作。QPainter 与 QPaintDevice 和 QPaintEngine 类一起构成了Qt绘制系统的基础:使用QPainter进行绘图的基本步骤如下:当你需要在自己定义的界面上面执行各种绘画操作时,使用这个类就行绘制,毕竟QT直接提供的Ui控件里面还是比较少的,如果你想实现自己的控件,可是重写里面的虚函数,进行绘制自己
2024-07-15 11:08:47
922
原创 Qt图形编辑类使用总结-QGraphicsView、QGraphicsScene类及QGraphicsItem类
QGraphicsView 类本身负责渲染和显示图形场景 (QGraphicsScene),而场景则负责存储和管理所有的图形项 (QGraphicsItem),这些图形项可以是文本、形状、图片等任何可视化元素。
2024-07-10 17:11:53
450
原创 Qt基础控件总结—多页面切换(QStackWidget类、QTabBar类和QTabWidget类)
QStackedWidget 类是在 QStackedLayout 之上构造的一个便利的部件,其使用方法与步骤和 QStackedLayout 是一样的。QStackedWidget 类的成员函数与 QStackedLayout 类也基本上是一致的,使用该类就和使用 QStackedLayout 一样。
2024-07-10 11:16:46
1554
原创 Qt常用基础控件总结—菜单控件(QMenu类)
QMenu 是Qt库中用于创建弹出式菜单的类,它通常出现在应用程序的顶部菜单栏、按钮的右键菜单或自定义上下文菜单中。QMenu 类提供了一系列方法来添加菜单项、子菜单以及关联槽函数,以便在用户选择菜单项时执行相应的动作。使用 exec(QPoint globalPos) 弹出菜单并等待用户选择一个项,然后返回被选中项的 QAction 对象指针。通过关联槽函数到 triggered(QAction *) 信号,可以在用户选择菜单项时执行相应操作。//在菜单中添加一个分隔线,用于区分不同的菜单项组。
2024-07-09 16:49:15
612
原创 Qt常用基础控件总结—表格控件(QTableWidget类)
表格控件最上面一排是,最左边一列是。表头又可以细分为多个分段(section),水平表头的分段就是表格各个列的列首,垂直表头 分段就是表格各个行的行首。表格控件的实体区域是按行、列排布的单元格,单元格内容一般用 QTableWidgetItem 条目填充,单元格如果不填充任何东西,那么默认是 NULL。。。1);2);3);4);5)。
2024-07-09 16:24:39
1016
原创 Qt常用基础控件总结—容器部件(QGroupBox类)
QGroupBox(组框),直接继承自 QWidget 类,因此使用该类创建的对象,可作为窗口使用,组框在外观上是可见的。QGroupBox 类(组框),提供了一个顶部带有标题的箱形框架,然后在该框架中可以显示其他部件,组框的主要作用是把各部件组织在一起,以方便管理。QGroupBox 不会自动布置组框内的子部件。组框中的子部件可以是任何部件,通常是单选按钮和复选按钮。
2024-07-09 15:40:58
828
原创 Qt常用基础控件总结—旋转框部件(QSpinBox类和QDoubleSpinBox类)
1)accelerated:bool 访问函数:bool isAccelerated() const;此属性用于描述当按下旋转框的“向上/向下”按钮一段时间不放时,是否会加快调整旋转框中数值增加/减少的速度。默认为 false。2)acceptableInput:bool 访问函数:bool hasAcceptableInput() const;此属性用于获取输入的值是否满足当前验证器的要求。访问函数:Qt::Alignment alignment() const;
2024-07-09 15:38:53
978
原创 Qt常用基础控件总结—输入部件(QComboBox类和QLineEdit)
QLineEdit 类是 QWidget 类的直接子类,该类实现了一个单行的输入部件,即行编辑器。验证器(QValidator 类)和输入掩码简介:主要作用是验证用户输入的字符是否符合验证器的要求,即限制对用户的输入,比如仅能输入数字而不能输入字母等。行编辑器默认支持复制、剪切、粘贴等常用操作,还支持一些常用的快捷键(比如 Ctrl+C等)和鼠标右键的上下文菜单。下表为默认支持的键盘快捷键。
2024-07-09 15:36:20
975
原创 Qt常用基础控件总结—带边框的部件(QFrame和QLabel)
QLabel 类是 QFrame 类的直接子类,因此 QLabel 可以使用从 QFrame 类继承而来的边框效果。Qt 的标签可用于显示纯文本、富文本、电影、图像等,但没有提供与用户交互的功能。富文本就是指的符合 HTML 语言规范的文本。QLabel 会试图猜测输入的文本是以纯文本还是以富文本的形式显示。默认情况下,QLabel 的对齐方式是左对齐和垂直居中对齐显示,其中要显示的文本中的制表符会自动展开。
2024-07-09 15:34:01
1160
原创 Qt常用类型使用总结-QImage类、QString类、Qvariant类、QDateTime类、QSplashScreen类等
颜色索引模式:在一张图片的每个像素中可以直接存放其rgb值!当然:我们也可以存放一个索引值,通过这个索引值去其对应的颜色表中去查找对应的颜色的rgb值来进行绘制。,亦即:用8位来存放一个索引值。灰度索引图:对于8阶灰度图而言,由于其一共有256种灰度,所以我们可以设计一个颜色表:里边存放256个rgb值!每个rgb值的三个分量都是相等的。这样:这张表就可以用来表示所有的灰度!而灰度索引图中存放的是各个整数索引值,这些图片数据本身是无法显示的,因为其没有实际的rgb值。
2024-07-09 15:23:46
1175
原创 Socket通信—套接字通信
Soket通信就是网络通信。局域网:固定区域内的计算机、外部设备形成的通信私有网络。广域网:连接不同区域的通信公共网络。IP(Internet Protocol):即网络协议。本质是一个整型,用于表示计算机在网络中的地址,IP协议版本有两个:IPv4和IPv6。IPv4:使用一个点分十进制字符串来描述这个IP地址:192.168.247.255,分成了4份,每份1字节,8bit,最大255。端口的作用是定位到主机上的某一个进程,通过这个端口进程就可以接收到对应的网络数据了。
2024-07-04 10:02:50
739
原创 PLC基础知识
3.客户端工控机的本地连接里的IP地址第四个时段必须服务器的IP地址错开,不能发生冲突,以及通信的带宽必须都设置在100M左右,目前更多的是百兆通信,没有千兆通信;4)由客户端向服务器申请连接。5.网络通讯协议(其作用是便于服务器之间传输数据):常见的有MICROSOFT的NETBEUI、NOVELL的IPX/SPX和交叉平台TCP/IP,其中最常见的是TCP/IP协议。TCP/IP协议是一个协议簇,里面包括很多协议的,其中UDP和TCP是所有协议中的传输层协议,主要负责提供端对端的接口。
2024-07-04 09:10:43
2565
原创 相机、镜头基础知识及硬件选型介绍
1.相机Binning(图像读出模式)功能:将相邻的几个像素合并成一个像素,其优点如下:1)可提高信噪比至sqr(mn)倍;2)可提高帧速至mn倍;3)可提高像素响应度。2.相机芯片中定义1英寸=16mm,不等于25.4mm3.相机的作用及基本成像过程:通过光电反应将光信号转换为电信号(电流/电压),进而存储以获得图像。基本成像过程:1)光电转换(将入射光信号转化为电信号);2)电荷收集(以一定形式的收集并存储代表入射光能量的电荷信号);
2024-07-04 08:58:31
1092
原创 光源基础知识及选型原则
1.光谱(专业理解):光能量在不同频率上的分布。2.可见光的波段在380mm—700mm之间。红光波长最长,为700mm左右,紫光波长最短,在380mm左右。3.色温(以白色为界):光源的颜色与黑体在某一温度下辐射光的颜色相同(或最相近)时,黑体的温度就称为该光源的色温。一般色温高的光源,光源亮度大,长期照射对人体伤害大,其颜色偏蓝,色温低的光源对颜色的光源还原性好,对人的损伤低,其颜色偏红。4.光的色散:复色光分解为单色光而形成光谱的现象就叫做光的色散。
2024-07-04 08:49:39
656
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人