自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 工厂模式(创建型)

简单工厂模式的方法为:通过一个工厂,工厂里面有一个创建的函数,通过输入type,通过switch的匹配,匹配成功的话,创建相应的产品,没有的话,返回nullptr。工厂方法模式:针对每一个产品都添加一个对应的一个工厂,这样的话添加产品的话只需要添加,产品和相应的工厂,而不需要修改原有的代码。提供一个接口,让该接口负责一系列“相关或相关依赖的对象”,无需指定他们具体的类。缺点:增加一个新的产品,不仅要实现具体的 产品类,而且还要创建相关的工厂接口。

2023-05-05 12:47:07 360 2

原创 图形视图界面 图形效果

模糊效果会模糊源。此效果对于减少细节非常有用,常用于失去焦点时,想要更加突出焦点控件。

2023-03-24 22:32:28 1248

原创 图形视图框架 事件处理(item)

默认的如果场景中没有获取焦点,那么所有的键盘事件将会被丢弃。如果场景中的setFouce()函数或图形项获取了焦点,那么场景也会自动获取焦点。对于鼠标悬停效果,QGraphicsScene会调度悬停事件。如果一个图形项可以接收悬停事件,那么当鼠标进入它的区域之中时,它就会收到一个GraphicsSceneHoverEnter事件。如果鼠标继续在图形项的区域之中进行移动,那么QGraphicsScene就会向该图形项发送GraphicsSceneHoverMove事件。

2023-03-19 22:09:04 2265

原创 图形视图框架的坐标

项目位于其自己的局部坐标系中。它们的坐标通常以中心点 (0, 0) 为中心,这也是所有变换的中心。项目坐标系中的几何基元通常称为项目点、项目线或项目矩形。创建自定义项目时,您只需担心项目坐标;QGraphicsScene 和 QGraphicsView 将为您执行所有转换。这使得实现自定义项变得非常容易。项目位置是项目在其父坐标系中的中心点的坐标;有时称为父坐标。从这个意义上说,这个场景被视为所有无父母项目的“父母”。顶级物品的位置位于场景坐标中。子坐标相对于父坐标。

2023-03-19 15:03:39 965

原创 图形视图框架QGraphicsItem(项,概念)

首先需要继承QGraphicsItem,必须重写 boundingRect() 和paint()函数,如果图形为非矩形的话,还需要再重写一下shape()函数boundingRect()返回要绘制图形项的矩形区域,所有绘画都必须限制在项目的边界内paint()用来绘制图形项shape()用来更精准的描述图形的区域,以便更好地进行碰撞检测。例如:创建一个c++项目,名为MyItemclass MyItem: public QGraphicsItem //继承QGraphicsItem。

2023-03-19 11:59:21 1923

原创 图形视图框架QGraphicsView(视图,概念)

QGraphicsView(图形视图)QGraphicsView提供了视图部件,用来使场景中的内容可视化,可以连接多个视图到同一个场景中来为相同的数据集提供多个视口,视图部件是一个可滚动的区域,提供一个滚动条来浏览大的场景。

2023-03-18 20:57:39 2538

原创 图形视图框架QGraphicsScene(场景,概念)

该类充当 QGraphicsItems 的容器。它与 QGraphicsView 一起使用,用于在 2D 表面上可视化图形项目,例如线条、矩形、文本甚至自定义项目。创建一个椭圆项添加到项目中返回QGraphicsEllipseItem*添加项目,使用QGraphicsItem*添加创建一个线段项添加到项目中返回QGraphicsLineItem*创建一个路径项添加到项目中返回QGraphicsPathItem*创建一个图片项添加到项目中返回QGraphicsPixmapItem*创建一个多边形项添加到项目中

2023-03-18 16:40:00 3374

原创 QML视图(PathView)

PathView(路径视图)count项数要缓存的路径外的最大项数当前索引当前项目draggingdragMargin拖动拖动边距flicking轻弹轻弹速率最大轻弹速度highlight高亮高亮的项目高亮移动时间递减当前索引递增当前索引indexAt(xyitemAt(xy获取x,y上的索引获取x,y上的项目将项目定位在首选突出显示开始Path(路径)startXstarYtt具有半径的给定位置的弧中心点、半径和角度指定的弧沿路径的各个段分散项目的方法。

2023-03-14 12:39:14 1424

原创 QML视图(GridView)

GridView的用法和ListView相似,都是继承自Flickable,但GridView是将项目排列成网络。GridView.FlowLeftToRight (default) 从左到右流动。

2023-03-13 10:19:20 1495

原创 QML视图(ListView)

如果模型不是按部分排序的,则创建的部分可能不是唯一的;不同部分之间的每个边界都将导致创建部分标题,即使该部分存在于其他地方也是如此。保存过渡以应用于视图中由于视图模型中的移动操作而移动的项。保存转换以应用于视图中因删除视图中的其他项而替换的项。保存转换以应用于视图中因添加视图中的其他项而替换的项。保存过渡以应用于视图模型中的移动操作所取代的项。当前的部分:保存当前位于视图开头的部分。保存从突出显示组件创建的突出显示项。保存要应用于从视图中删除的项的过渡。保存要应用于从视图中添加的项的过渡。

2023-03-12 16:51:16 3646

原创 QML模型(VisualItemModel)

VisualItemModel允许使用QML项目作为模型,该模型同时包含了数据和委托,在VisualItemModel中的子项目提供了委托的内容,该模型没有提供任何角色,(现在一般使用ObjectModel代替VisualItemModel)

2023-03-12 11:14:25 342

原创 QML模型(XmlRole ,XmlListModel)

isKey : bool:定义这是否为关键角色。关键角色用于确定在调用 XmlListModel:reload ()时是否应更新一组值或将其添加到 XML 列表模型中。XmlRole (XML角色)

2023-03-12 10:28:17 659

原创 QML 模型(ListModel)

LIstModel(列表模型)ListModel 是ListElement定义的简单容器,每个定义都包含数据角色。内容可以在 QML 中动态定义或显式定义。索引处的索引字典n从一个移动到索引索引处的。

2023-03-10 15:30:25 4761

原创 QML动画(弹动和翻转效果)

这些属性描述当前查看区域的位置和大小。大小定义为当前可见的完整视图的百分比,缩放为 0.0 - 1.0。页面位置通常在 0.0(开始)到 1.0 减去大小比(结束)的范围内,即 在 0.0 到 1.0-的范围内。但是,内容可能会拖到正常范围之外,从而导致页面位置也超出正常范围。用户无法拖动或轻拂非交互式的可轻拂对象。保存可轻拂对象是否将给人一种视图边缘柔和的感觉,而不是硬物理边界。调用此方法将更新相应的移动和轻弹属性和信号,就像真正的轻弹一样。默认情况下,此属性为 true。以像素/秒为单位水平轻拂。

2023-03-09 19:46:12 1999

原创 QML动画(Animator)

Animator (动画器)axis.xaxis.yaxis.zorigin.xorigin.y​​。

2023-03-08 18:40:01 1325

原创 QML动画(其他的动画)

描述目标被拉向源的强度。默认值为 0(即禁用类似弹簧的运动)。有用值范围为 0 - 5.0。SpringAnimation模仿弹簧的振荡行为,使用适当的弹簧常数来控制加速度,使用阻。此属性保持跟踪源时允许的最大速度。默认值为 0(无最大速度)如果设置此属性并且速度值大于 0,则速度会限制最大速度。值的变化率和变化量,该值足够接近 0 以被视为等于零。来控制效果消失的速度。您还可以限制动画的最大速度。有用的值范围为 0 - 1.0。描述类似弹簧的运动停止的速度。SpringAnimation(弹簧动画)

2023-03-07 22:45:17 396

原创 QML 动画(组合动画)

将天空从白天淡化到黑夜。

2023-03-07 12:49:45 655

原创 QML动画(基本动画)

是所有 QML 动画的基础,但动画类型不能直接在 QML 文件中使用。它的存在是为了提供一组通用属性和方法,这些属性和方法可用于从它继承的所有其他动画类型。尝试直接使用动画类型将导致错误。resume()targettargets目标多个目标property属性多个属性。

2023-03-07 10:41:07 654

原创 QML Loader(加载程序)

【代码】QML Loader(加载程序)

2023-03-05 17:37:38 1030

原创 QML动态对象管理

QML中有多种方式来动态创建和管理QML对象: 使用加载器:使用复制器: QML支持从JavaScript中动态创建对象。这对于在必要时延迟对象的实例化非常有用,从而缩短应用程序启动时间。它还允许动态创建视觉对象并将其添加到场景中,以响应用户输入或其他事件动态创建对象的方法:要动态加载 QML 文件中定义的组件,请在 Qt对象中调用 Qt.createComponent() 函数。此函数将 QML 文件的 URL 作为其唯一参数,并从此 URL 创建Component对象。拥有组件之后,可以调用

2023-03-05 15:20:10 1022

原创 QML编码约定

sourceText, string, intn返回sourceText的翻译版本,可以选择基于消除歧义字符串和包含复数的字符串的值n;否则,如果没有合适的翻译字符串可用,则返回sourceText本身。如果在同一翻译上下文中以不同的角色使用相同的sourceText,则可能会传入额外的标识字符串以消除歧义。如果是数字“4321.56”(四千三百二十一点五十六);使用英语区域设置(区域设置)时,输出为“4,321.56”;使用德语区域设置时,输出为“4.321,56”。

2023-03-05 13:23:20 739

原创 QML集成JavaScript

大量的JavaScript代码需要写在一个独立的文件中。使用import 来导入到QML中。点击左上角新建文件,选择Qt中的JsFile。QML信号中的JavaScript。

2023-03-05 10:33:35 964

原创 QML组件

类型被省略,但一定要加上alias关键词。在组件中添加属性、函数和信号。在组件中添加属性、函数和信号。

2023-03-04 15:28:14 916

原创 QML属性

列表属性每一个对象都可以指定它的列表中的一项或者一个对象属性作为它的默认属性。因为Changs是State类型的默认属性:可以省略changes分组属性:相同类型的属性可以进行合并使用 . 来表示合并的话使用 { } 用;分隔使用PropertyChanges元素可以用在一个状态下改变中来修改属性的绑定。

2023-03-03 20:53:11 433

原创 QML定时器

创建3个Rectangle,分别对应 开启定时器,暂停定时器,重启定时器,鼠标点击分别执行相应的函数。如果开启triggeredOnStart,则开始时会先执行一次,然后等待时间间隔。如果关闭triggeredOnStart,则需要先等待时间间隔,然后才会执行。计时器可用于触发操作一次,或以给定的间隔重复触发。设置重复,为真,则以指定的间隔重复触发计时器。默认间隔为 1000 毫秒。默认为(false)

2023-03-03 14:52:35 2317

原创 QML键盘事件

具有活动焦点优先级Keys.BeforeItem (默认)在正常项键处理之前处理键事件。如果事件被接受,它将不会传递给该项目。Keys.AfterItem 在正常项键处理之后处理键事件。如果该项接受键事件,则不会由键附加属性处理程序处理它。按下向上键,向上移动10按下向下键,向下移动10按下向左键,向左移动10按下向右键,向右移动10基于键的用户界面通常允许使用箭头键在可聚焦项目之间导航。

2023-03-03 14:05:22 2382

原创 QML鼠标事件

如果传播复合事件设置为 true,则组合事件将自动传播到场景中同一位置的其他鼠标区域。每个事件都按堆叠顺序传播到其下方的下一个启用的 MouseArea,向下传播此可视层次结构,直到 MouseArea 接受该事件。与事件不同,如果不存在处理程序,则不会自动接受组合事件。保存组合鼠标事件是否将自动传播到与此鼠标区域重叠但在可视堆叠顺序中较低的其他鼠标区域。默认情况下,此属性为 false。Drag.XAndYAxis 水平和竖直。Drag.YAxis 竖直。Drag.XAxis 水平。

2023-03-01 18:55:32 1882

原创 QML Item

Item中还有一个data默认属性,允许在项目中将可见和不可见的资源自由混合,由于data是默认 属性,所以可以省略data标签。Item拥有一个z属性,可以设置堆叠顺序,默认的堆叠顺序为0,z数值大的优先绘制。item拥有children属性和resources。如果都没设置的话,根据项目顺序(由上到下)绘制。states(状态)

2023-02-27 10:04:18 650

原创 QML 元素布局

除了 Row 、Column、Grid 等,QML还提供Anchor(锚)来对元素进行布局。Flow 项将其子项定位为页面上的单词,并将它们换行以创建项目的行或列。填充,此属性保存要为添加到此定位器的项运行的转换。Flow.LeftToReight(左到右 默认)Flow.ReightToLeft(右到左)

2023-02-26 20:42:08 624

原创 QML Image and Text(图像和文字)

加上表和任务列表的 GitHub 扩展(自 5.14 起)如果要在有限的空间中显示可能较长的文本,则可能需要改用。自动变换,此属性保存图像是否应自动应用图像转换元数据。将此属性设置为使文本的某些部分适合文本项的宽度。是否裁剪,如果文本不适合边框,它将突然被切碎。此属性不能与富文本一起使用。富文本不支持此属性。

2023-02-26 16:01:45 1327

原创 Qt 中的XML

EXML标记语言传输数据自行定义标签自我描述性W3C 的推荐标准。

2023-02-25 20:12:19 5327

原创 Qt 进程间通信

跨平台Qt网络模块提供的类使本地网络编程变得可移植且简单。它提供了QLocalServer和QLocalSocket类,允许在本地设置中进行类似网络的通信。它们的 TCP 对应项可以用作直接替代品,以使跨网络通信工作。(使用方法和TCP相似)

2023-02-24 17:23:00 7144 1

原创 Qt中的多线程

特征QThreadQRunnable和QThreadPool指定优先级是是可运行事件循环是线程可以通过信号接收数据更新是可以使用信号控制螺纹是是(QFutureWatcher)可以通过QFuture监控线程部分是是内置暂停/恢复/取消功能是。

2023-02-21 15:42:13 4217

原创 QThread 事件循环

线程: My_thread.cpp文件主类:Widget.cpp文件 线程: My_thread.cpp文件子类object:主类:QThread继承了QObject,QObject可以在多个线程中使用,发出调用其他线程中槽的信号,并将事件发布到在其他线程中“活动”的对象。这是可能的,因为允许每个线程都有自己的事件循环。QObject是可以重入的,大多数非GUI子类都是可重入的。QTimer,QTcpSocket,QUdpSocket,QProcess,在多线程中使用

2023-02-20 23:21:02 2392

原创 Qt 线程

QThread(线程),代表一个在应用程序中可以独立控制的线程,可以和进程中的其他线程分享数据。QThread 对象管理程序中的一个控制线程。QThreads 在 run() 中开始执行。默认情况下,run() 通过调用 exec() 来启动事件循环,并在线程内运行 Qt 事件循环。

2023-02-20 16:04:00 6864 1

原创 QXlsx(访问Excel)

Workbook(工作簿):打开一个Excel后,Excel中的数据会形成工作簿工作簿中可能会含有多个表Worksheet(工作表) :获取工作簿中的一个工作表​Cell(单元格):工作表中的一格​Format(格式):单元格中可以设置格式Document(文档类)用来处理Excel文件中的内容创建一个对象创建并打开指定路径的Excel返回指定单元格,如果指定位置没有单元格,则该函数返回 0。添加一个新表name,格式为type创建name2,复制name1返回当前的工作表对像。

2023-02-19 14:08:45 4479 2

原创 QML Gradient(渐变)

渐变由两种或多种颜色定义,这些颜色无缝混合。颜色从指定的角度开始,以 360 度较大的角度值结束。渐变由两种或多种颜色定义,这些颜色无缝混合。颜色从项目的中间开始,到边框结束。

2023-02-16 21:01:57 3407

原创 QML矩形(Rectangle)

gradient: Gradient { //以垂直方向添加颜色。

2023-02-16 15:24:17 1069

原创 初识QML

Qt Quick是QML的标准类型和功能库。它包括视觉类型,交互类型,动画,模型和视图,粒子效果和着色器效果。QML 应用程序开发人员可以通过单个导入语句访问所有这些功能,简单来说Qt Quick是一种高级用户界面技术,可以轻松的创建提供移动和嵌入式设备使用的动态触摸式界面和轻量级引用程序QML改进的Qt CreateIDE在Qt Quick中 QML实现用户界面以及它们的行为和动作,QML是对JavaScript的一种扩展,可以让开发者和设计者使用一个声明性语法来使用QML元素指定每一个用户界面。

2023-02-16 14:07:48 1389

原创 多线程服务器

服务器端使用多线程的方式,当有客户端请求到达时,服务器将启动一个新线程为它返回当前的时间,服务完后线程自动销毁,服务器端会显示连接的次数。客户端比较简单,先搭建客户端。

2023-02-14 22:18:04 843

Qt Tcp传输文件(简易)

Qt Tcp传输文件(简易)

2023-02-14

Qt 中的多媒体播放,底层是使用 DirectShowPlayerService,所以安装一个 DirectShow 解码器

Qt视频无法播放:出现 DirectShowPlayerService::doRender: Unresolved error code 0x80040266

2022-11-26

空空如也

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

TA关注的人

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