自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(118)
  • 收藏
  • 关注

原创 QListWidget中item用qss指定正常状态下padding无效的问题

QListWidget中item用qss指定正常状态下padding无效

2025-05-28 10:16:57 98

原创 QScrollArea内容增加后自动跳到底部

每次resize时,将QScrollArea的滚动条的值设为最大。监听QScrollArea内部Widget的resize事件。

2025-05-22 16:02:19 111

原创 Qml自定义组件之车辆风扇展示

6、当然也可以用AnimatedImage元素直接显示动图,但动图需要互撕webp格式的高清动图,gif格式的会很糊。4、缩短定时器的超时间隔,则图片显示切换加快,则风速加快。拉长定时器的超时间隔,则图片显示切换变慢,则风速变慢。3、利用Timer定时器元素不停的切换Image元素的显示的图片,从而出现动图的效果。5、利用transform属性,让他绕着x轴旋转,来模拟风向的变化。上面表示空调系统,有风在吹动,可以调节风速和风向。2、利用Image元素显示这些图片。先是自定义的Wind组件。

2025-05-14 19:51:37 312

原创 Qt元对象系统总结

启用Qt的元对象系统需要满足特定条件,尤其是在多重继承时,QObject必须作为第一个基类,否则无法启用元对象机制。元对象系统是Qt框架中的核心机制,通过QMetaObject类来描述类的信息,实现反射功能。反射是指通过获取对象的元对象,动态获取类的属性和方法等信息。在Qt中,信号和槽函数会自动被反射,无需显式添加Q_INVOKABLE。此外,Qt还支持通过类名字符串动态创建QObject子类的对象,进一步增强了其灵活性和动态性。

2025-05-12 19:51:41 563

原创 Qml中的状态State

都有一个states状态列表的属性,可以往这个属性中添加State元素来增加item的状态。所有继承自item的元素都有一个state属性,用来描述元素当前的状态。如何进行状态切换:即将state属性的值设置为目标状态的名称。可以看到是1个数组,里面的元素是Change或者其子元素。即item当前状态的状态名,默认是空字符串,没有状态。可以是一个表达式,即这个表达式为真时,切换到该状态。下面的例子展示了状态、状态列表、状态元素如何使用。元素每一个状态都有一个唯一的名称,默认没有状态。State有以下属性。

2025-05-07 20:25:58 294

原创 Qml组件之Image的变换

默认1.0,不缩放,默认绕Image中心缩放,可以指定transformOrigin确定缩放点。axis:是一个属性组,指定绕哪个轴旋转,指定哪个轴,哪个轴的值就为1,默认绕z轴(2d平面)可以指定变换的中心,scale缩放属性和rotation旋转属性的变换中心都会使用这个。顺时针旋转,默认0度,2d平面旋转,默认的旋转中心是整个元素的中心点。origin:是一个属性组,指定旋转中心点的坐标,默认(0,0)origin:是一个属性组,指定缩放中心点的坐标,默认(0,0)angle:指定旋转角度,默认0。

2025-05-06 09:59:59 761

原创 Qml组件之AnimatedImage

继承自Image扩展了Image高清动图webp格式常用属性。

2025-05-05 10:11:19 423

原创 Qml组件之Image

Image.PreserveAspectCrop:图片等比例缩放,但是有可能不会完整显示,超出的部分会被裁剪。Image元素的width和height属性没有显式指定的话,Image会自动使用加载的图片的宽度和高度。是一个只读属性,可以通过该属性获取Image加载图像的加载状态,有以下4个状态,见名知意。指定Image加载图像是异步的,在加载大内存的图像时可以方式界面卡顿。指定图片在Image中的对齐方式,默认是在Image中心。一般在性能较低的设备中需要指定,比如arm的嵌入式设备。

2025-05-01 08:44:38 460

原创 Qt官方案例知识点总结(拖放操作——Drag And Drop Robot )

QApplication::startDragDistance() ,超过这个距离才启用拖动。),会跟着拖动对象一起释放。重写QGraphicsItem的鼠标移动事件,在移动事件中开启拖动。(QDrag * drag)可以指定父对象也可以不指定,他。即不重写相关虚函数,直接将数据作为其子类的成员变量,如下。可以看到以图像内轮廓为边界线,无关的白色区域被抹去了。创建自定义数据 ,指定类型的字符串可以自己随便写。可以在动画组里添加多个动画,这些通话可以同时进行。,来和回是完全相反的两个动画,如下。

2025-04-30 14:34:48 705

原创 网格布局同一格子可添加多个Widget

QGridLayout可以在同一个格子中同时添加多个QWidget,呈现在布局中的堆叠效果,后添加的会在上面。

2025-04-29 11:24:46 64

原创 Qt官方案例知识点总结(图形视图——Colliding Mice)

通常搭配QTimer,或者QTimeLine,来重复调用advance方法,从而实现简单的动画。图元可重写下面的方法,(比如在里面改变位置,每次设置不同的位置,这样图元就动起来了)图元可重写下面的方法,返回一个QPainterPath(形状),该形状。返回的形状用于碰撞检测、命中测试等,形状越精确,那么碰撞检测等就越准确。这个槽函数在调用时,会调用场景里面所有图元的advance()方法。下面的方法用来设置场景给item应用索引的方式。下面的函数用来设置视图视口的更新模式,

2025-04-18 16:00:50 1043

原创 Qt判断Windows和Linux 条件编译#if的写法

【代码】Qt判断Windows和Linux 条件编译#if的写法。

2025-04-02 15:22:33 160

原创 qss样式表总结(使用时直接复制粘贴修改)

(上下为绿,左右为红)按顺序是背景图片、背景平铺、背景水平位置、背景上下位置。按顺序是:字体风格,字体粗细,字体大小,字体族。按顺序是背景色、背景图片、背景平铺、背景位置。按顺序是:边框宽度 边框风格 边框颜色。(8位时,前面2位的ff表示透明度)字体装饰:(下划线、删除线之类的)(4个角的圆角半径是3px)(最后一个数字表示透明度)也可以只指定其中1和或几个。还可以单独指定某一条边框。

2025-02-28 14:28:26 740

原创 重写QListWidget/QListView的代理,以网格的形式展示Item

2、然后确定每个item的大小,重写代理的。QListWidget的ViewMode。

2025-02-20 21:13:40 244

原创 使用QPainter绘制pixmap时保持纵横比

有时候绘制图片时希望保持纵横比,而不是随着绘制区域的矩形进行自动缩放。

2025-02-13 16:27:25 134

原创 Qt中mapToGlobal的使用

直接调用全局函数,参数传QPoint(0,0);将一个控件的左上角映射到在全屏中的坐标。

2025-02-12 15:47:27 186

原创 自定义QComboBox,下拉列表增加间距,增加弹出动画,支持圆角

【代码】自定义QComboBox,增加间距,增加弹出动画,支持下拉列表圆角。

2025-02-06 10:58:57 331

原创 Qt绘制一个星星

【代码】Qt绘制一个星星。

2024-12-22 15:28:15 187

原创 翻转动画

小于90度时绘制第一个pixmap,大于90时绘制第二个pixmap。6、动画结束后,设置stacked widget的当前widget。将两个widget的内容渲染到一个2个QPixmap中。2、里面放了2个widget,一个蓝色一个红色。4、通过动画不停的修改旋转角度,然后重绘界面。得QPainter绕某个轴(x,y,z)旋转。1、放了1个stacked widget。默认是z轴,也就是在xy平面中旋转。

2024-12-14 10:47:19 285

原创 给控件或者窗口加阴影

通过该类QGraphicsDropShadowEffect的接口来设置阴影的属性。我们可以通过QWidget的这个方法来添加阴影。最后将这个效果设置给Widget就可以了。

2024-12-09 11:49:41 370

原创 带动画的开关按钮

4、重写鼠标点击事件,点击后修改开关状态,同时开始属性动画,会不停的修改滑块的当前位置然后重绘。5、重写resize事件,更新滑块的当前位置和属性动画,否则滑块的位置在resize后不会准确。2、再根据滑块当前的位置绘制滑块。1、先绘制背景的圆角矩形。

2024-12-08 12:18:12 467

原创 波浪进度条

5、然后再在第一步之前给QPainter设置可见区域,把这个圆的范围设置为可见区域,这样多余的蓝色就不显示了。1、先绘制波浪状的QPainterPath ,即sin曲线。2、通过定时器不停的更新sin曲线的初始相位来呈现波动的效果。需要指定可见区域的路径,这里可见区域是一个圆。4、然后绘制中间的文本。调用QPainter的。3、然后绘制中间的圆。

2024-12-05 18:16:29 608

原创 雷达控件

雷达控件。

2024-12-04 11:42:22 204

原创 仪表盘

2、再画刻度线和刻度值,绘制时,先把painter旋转135度到起始刻度处。根据QFontMetrics来获取指定文本的宽度和宽度。1、先画底部蓝色的圆。

2024-12-02 15:58:24 270

原创 责任链模式

除了处理请求外, 处理者还负责沿着链传递请求, 请求会在链上移动, 直至所有处理者都有机会对其进行处理。定义:使得多个对象都有机会处理请求,从而避免请求的发送者和接受者之间的耦合关系。外部使用时将这些对象练成一条链,并沿着这条链传递该请求,直到有一个对象处理他为止。以请假为例,向提交给A处理,A无法处理则交给B,B无法处理则交给C处理。缺点:增加新的请求处理类很方便,但是不能保证你的请求一定会被接受。链上的每个处理者都有一个成员变量来保存下一个处理者。1、定义抽象处理者,定义处理请求的接口,

2024-12-02 11:17:13 514

原创 环形进度条

其中dx1,dy1,表示原来矩形的左上角往里或者往外缩多少,都为正,则左上角往里缩,都为负,则左上角往外缩。dx2,dy2,表示原来矩形的右下角往里或者往外缩多少,都为正,则右下角往外缩,都为负,则右下角往里缩。注:里面的set和get方法,还有Q_PPROPERTY都是qt自己加的,点击重构就可以添加。1、QRect::adjusted快速根据一个矩形进行调整得到另一个矩形。2、确定半径为宽高中较小值的一半,防止缩放变形,优先填满较小的那一边。4、绘制中间的扇形,且采用中间锥形渐变。

2024-12-01 15:43:57 334

原创 代理模式

注意:如果使用代理模式,不能改变被代理的类的接口,使用代理模式的目的是为了加强控制。4、外部使用时,直接使用代理类的接口来间接操作被代理类。定义:为其他对象提供一种代理亿控制对这个对象的访问。3、代理类提供接口来调用背部被代理类的接口。缺点:造成请求的处理速度慢,实现复杂。优点:职责清晰,高扩展性,智能化。1、代理类和被代理类有相同的父类。2、代理类内部含有被代理类的指针。应用创景:优化接口性能。

2024-12-01 11:31:23 359

原创 Qt中QML和C++混合编程

使用QML开发界面。

2024-11-28 11:30:29 1513

原创 原型模式

功能:复制一个运行时的对象,包括对象各个成员当前的值。并且能够通过父类的指针来克隆出子类的对象。3、外部使用时就可以通过调用clone()方法来获得1个与当前对象完全一样的对象。2、继承重写clone(),clone()内部调用拷贝构造函数创建一个新的对象。1、定义抽象原型,声明纯虚接口clone()优点:性能提高、避免了构造函数的约束。主要解决:在运行期建立原型。

2024-11-25 21:17:55 415

原创 工厂模式

将工厂也抽象出来,以后有新的产品,则新加一个具体的工厂类就可以了,不用修改工厂类的代码。只有一个工厂类,每次有新的产品就需要修改里面接口的内容,违反了封闭原则。主要解决对象的创建问题。

2024-11-22 20:46:55 206

原创 观察者模式

5、(可有可无)抽象观察者内部也可以维护一个被观察者的指针,在构造函数中就可以将当前观察者注册到这个被观察者中,不用在外部调用注册接口了。或者当应用中一些对象必须观察其它对象的时候可以使用观察者模式。遍历观察者的list,调用每一个观察者的update接口。2、子类继承实现抽象观察者,重写update接口。,这个接口用来接收被观察者的消息。一个对象的状态发生变化。需要改变其它对象的时候。添加和删除观察者的接口。

2024-11-21 21:01:18 442

原创 QT Designer内存飙升

偶然出现了 QT Designer内存飙升 把内存占满了的问题。前往C:\Users\\.designer目录。重启Qt Designer就好了。删掉gradients.xml。的文件,而且这个文件特别大。原因:反复的在读一个叫。

2024-11-21 19:42:46 458

原创 策略模式

而且使用Context类的人在外部想使用不同的算法时不用写很多的if语句了,,算法1,算法2,...,算法n,把他们封装起来,使他们可以相互替换。避免了很多的if elseif else。一个类的行为或者其算法可以在运行时改变。

2024-11-20 21:01:50 406

原创 单例模式

1、将构造函数设为私有,拷贝构造函数设置为私有(或者delete掉),赋值函数设置为私有(或者delete掉)在内存里只有1个实例,减少内存的开销,尤其是频繁的创建和销毁实例。如果希望在系统中某个类的对象只能存在1个,那么就使用单例模式,比如配置类。定义:保证1个类仅有1个实例,并提供一个访问他的全局访问点。还可以使用std::call_once解决多线程访问的问题。主要解决了:全局使用的类频繁的创建与销毁。2、提供几个静态的访问唯一实例的接口。需要访问这个实例时才初始化这个实例。

2024-11-19 20:27:35 509

原创 QT中使用图表之QChart绘制面积图

4、使用QChart::createDefaultAxes()创建默认的x轴和y轴(根据内部的系列)需要给系列设置上折线和下折线(QLineSeries),如果没有设置下折线,则默认x轴为下折线。创建上折线和下折线(QLineSeries),并将上下折线设置给面积系列。绘制面积图,则系列选择面积系列QAreaSeries。3、创建面积系列(QAreaSeries),2、创建图表,并将图表设置给图表视图。设置面积系列的一些属性。

2024-11-18 20:26:17 395

原创 QT中使用图表之QChart绘制柱状图

3、创建X轴(使用条形图的种类轴QBarCategoryAxis)和Y轴,并添加到图表中。可以添加多个条形集合,若有多个,则每一个种类对应的条形就有多个。5、将条形系列QBarSeries添加到图表中,并和XY轴进行关联。并添加条形集合,在条形集合中追加每一个种类对应的值。绘制条形(柱状)图,系列选择条形系列QBarSeries。4、创建条形系列QBarSeries,设置其相关属性,2、创建图表,并将图表设置给视图,设置图表的一些属性。并设置条形集合的一些属性。

2024-11-17 21:07:23 728

原创 QT中使用图表之QChart绘制饼图

绘制一个饼图,点击对应切片可以让切片分离。2、创建图表并将图表设置给图表视图。饼图没有坐标轴,也不需要坐标轴。3、创建饼图系列,并给系列。饼图里面一个一个的块称为。4、将系列添加到图表中。

2024-11-15 20:28:36 1108

原创 Qt中实现旋转动画效果

动画开启后,就会不停的调用setRotation(属性write函数)去修改这个属性的值。于是QPropertyAnimation就会使得对应的控件不停的重绘,就产生了动画效果。我们在setRotation这个函数中修改属性的值后,调用update()使用QPropertyAnimation类绑定对应的属性后。就可以给这个属性设置对应的动画。

2024-11-15 20:02:15 953

原创 大小改变事件

通常在窗口尺寸变化后,在尺寸改变事件中,获取最新的尺寸,然后将内部某些控件的大小也跟着改变,或者改变布局。获取之前的尺寸:ev->oldSize()获取大小改变后的尺寸:ev->size()事件对应的类为:QResizeEvent。窗口改变后,内部按钮的大小跟着改变。即窗口尺寸变化时会触发这个事件。

2024-11-13 20:09:38 521

原创 自定义鼠标图片

QWidget可以设置鼠标QCursor。QCursor可以设置自定义图标。比如将光标设置为以下形状。

2024-11-13 16:21:53 189

QT中使用图标字体,示例

QT中使用图标字体,示例

2024-07-28

空空如也

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

TA关注的人

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