自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(382)
  • 问答 (1)
  • 收藏
  • 关注

转载 C++17 std::filesystem 用法指北

需要C++17或以上的支持.本文将针对常用的场景,对。

2024-09-21 17:17:01 90

原创 C++移动语义

移动语义,如果想要理解它,那么你的重点不应放在“移动”,而在于“语义”。因为移动,是由移动构造函数、移动赋值运算符决定的,是否真的发生移动了、如何实现移动,都要看具体实现。不论是类设计者还是类使用者,关键都在于遵照语义。下面一步步帮你理解。

2024-09-14 19:37:29 359

原创 C++ lambda闭包消除类成员变量

消除了——通过将它们闭包到lambda表达式中,然后将这个lambda存起来重复使用。如果用引用捕获,栈变量会释放导致非法访存;可以借助函数式编程思想,来消除一些不必要的类成员变量。拿到一个类,一看成员变量好几十个,就问你怕不怕?在面向对象编程时,常常要添加类成员变量。然而类成员一旦多了之后,也会带来干扰。就无法修改值捕获的变量。

2024-09-11 22:33:26 479

原创 CMake创建OpenGL项目

在编译第三方库时,最好都用CMake来构建,这样都会有。

2024-09-09 10:01:16 319

原创 OpenGL——场景动画

画一个运动的三角形,使用了统一变量。用获取指向变量offset的指针,用将x的值复制给offset。

2024-09-07 16:24:32 224

原创 OpenGL——画一个填充的三角形

中指定的类型是三角形。

2024-09-07 16:01:33 207

原创 OpenGL——检测OpenGL和GLSL错误

【代码】OpenGL——检测OpenGL和GLSL错误。

2024-09-07 15:22:47 667

原创 OpenGL——着色器画一个点

内置变量用来设置顶点在3D空间中的坐标位置,并将其发送到下一个管线阶段。GLSL数据类型vec4用来存储四元组,适合用来存储坐标,四元组的前3个值分别表示x、y、z坐标,第4个值在这里设为1.0(暂时不用了解)。本例中,顶点坐标被硬编码为原点。

2024-09-07 11:20:30 256

原创 Qt圆角QWidget

【代码】Qt圆角QWidget。

2024-09-06 17:11:15 83

原创 OpenGL——第一个程序

【代码】OpenGL——第一个程序。

2024-09-02 10:02:24 220

原创 C++小技巧——指针实例容器

这样,可以在初始化时将需要用的对象,特别是那些几乎只会有一个实例的类,会方便许多。实际开发中,两个不同的类对象有时要完成数据交互,需要能够获取到对方,如何获取?此处的思路是引入一个中间对象,单例的容器,用于存取变量。

2024-08-27 10:58:14 239

原创 QCombobox控制下拉列表位置

的位置是默认位置,也就是左对齐)

2024-08-20 20:46:44 192

原创 QtQuick 布局管理-布局管理器

在一个布局管理器中横向排列两个矩形,当拉伸程序窗口时,左边距形可以从50x150变化到300x150,右边矩形可以从100x150变化到∞x100。与定位器不同,布局管理器不仅进行布局,而且会改变项目的大小,所以更适用于需要改变用户界面大小的应用。布局管理器的大小约束可以用来确保窗口大小不会超过约束条件,还可以将布局管理器的约束设置到窗口项目的。属性来设置当前显示的项目,索引号对应布局管理器中子项目的顺序,从0开始。为了将布局管理器与窗口进行关联,可以为布局管理器添加锚。,此时,有效的最佳高度会从。

2024-08-11 16:59:31 726

原创 QtQuick 布局管理-基于锚的布局

另外,还可以通过JavaScript改变锚,但是一定要注意操作的顺序,否则可能出现奇怪的结果。锚定系统也允许为一个项目的锚指定边距(margin)和偏移(offset)。其中baseline是一条假想的线,文本坐落在这条线上。Qt Quick锚定系统允许不同项目的锚线之间建立关系。对于没有文本的项目,baseline与top相同。边距指定了项目锚到外边界的空间量,偏移则允许使用。类型,以便在运行时修改项目的锚,它需要在状态。,所以所有可视项目都可以使用锚进行布局。不能修改项目的边距,需要时可以使用。

2024-08-11 16:02:13 290

原创 QtQuick 布局管理—定位器

Column、Row、Grid和Flow中会附加一个Positioner类型的对象作为顶层子项目,它可以作为定位器中的子项目提供索引等信息。每一个项目都会被放置在网格左上角(0, 0)的位置。通常会包含在一个定位器中,用于直观地对Repeater产生的众多委托项目进行布局。这里使用了一个矩形作为委托,在其中通过index索引属性显示了每个子项目的编号。在Repeater中创建的项目数量可以通过count属性获得,该属性是只读的。定位器(Positioners)是一个容器,可以管理其中子项目的布局,包括。

2024-08-11 15:18:50 793

原创 Qt解析XML

结果发现低估了难度,VS会间接引入许多目录。略有不甘,暂且作为一个解析XML文件的示例。),配合cppclean来发现多余的。本来想解析VS的项目配置文件(

2024-08-10 20:50:52 479

原创 QtQuick TextEdit

这里将focus设置为true,使TextEdit项目接收键盘输入。TextEdit没有提供滚动条、光标跟随等通常行为。TextEdit用于显示多行、可编辑的格式化文本。元素提供滚动,实现光标跟随。可以显示纯文本、富文本。,暂时感觉不是很重要。

2024-08-10 15:07:31 143

原创 QtQuick TextInput

TextInput默认没有漂亮的外观。一般吧直接使用TextInput本事,而是自定义一个组件爱你,外部直接使用新的组件代替TextInput。属性可以使用鼠标选取TextInpu中的文本。在Qt 6.4以前该属性默认为false,之后的版本默认为true。信号处理器,而且只有当所以必须输入的字符都输入后,按下回车键才可以调用该信号处理器。TextInput还提供了许多和文本选取有关的方法,例如用于复制的。可以分别获取鼠标选取的文本块前后的光标位置。,它们都会在回车键按下时被调用。获取选中的文本,使用。

2024-08-10 14:46:50 412

原创 类模板实现实现Qt click/hover自定义操作

不能在类模板中使用,导致我们不能在模板类中设置信号。不过也不是刚需,上面的场景回调函数足够用了。/QSS只能实现常规态、按下态的图标切换,hover态的图片设置无效。注意,只能通过组合的方式。如果通过多继承的方式,例如让模板类继承。然而,总要为这些鸡毛蒜皮的操作“小动干戈”会让人不爽。如果一定要使用信号,那么就要用一个类来代理信号的发送。常常会需要实现点击/hover时修改图片,可能是一个。解决思路无非是安装事件过滤器、自定义类并重实现事件。这里选择更通用的类模板来简化操作。不支持多重继承,会有问题。

2024-08-06 11:49:22 1048

原创 QtQuick Text-文本格式和超链接

时可以自动判定是否以样式文本进行显示,这是通过检查文本是否存在HTML标签来判定的,通常情况下可以正确判断,但是并不能保证绝对正确。处理器,它会在用户单击了文本超链接时被调用。超链接必须使用富文本或者HTML格式。解析器很严格,需要标签必须正确嵌套。其中link提供了被单击的特定链接。Text项目提供了一个。

2024-08-03 13:51:54 235

原创 AutoHotKey 获取鼠标实时位置

文件,写入示例代码,双击启动脚本即可。安装autohotkey,创建。

2024-08-03 12:39:07 306

原创 QtQuick Text-文本样式

属性可以设置文本的样式。

2024-08-03 00:01:00 240

原创 QtQuick Text-对齐方式

在这种情况下,所以的对齐都是等价的。如果想让文本处于父项目的中间,那么可以使用。对于没有设置Text大小的文本,Text的大小就是包含文本的区域。分别用来设置文本在 Text项目区域中的水平、垂直对齐方式。

2024-08-02 22:41:33 185

原创 QtQuick Text-文本省略

【代码】QtQuick Text-文本省略。

2024-08-02 22:20:04 254

原创 Qt弹窗实现退出渐变动画

【代码】Qt弹窗实现退出渐变动画。

2024-07-30 20:21:54 235

原创 QtQuick-QML类型系统-对象特性 (枚举特性)

枚举(Enumeration)提供了一组固定的命名选项,通过enum关键字来声明。

2024-07-28 13:55:37 176

原创 QtQuick-QML类型系统-对象特性 (附加属性和附加处理器)

只是附加到了根委托对象,而不是委托对象的子对象。在实习一个QML类型时,可以选择性地创建一个包含特定属性和信号的附加类型。附加属性和附加信号处理器是一种允许对象使用额外的属性或信号处理器的机制。使用附加属性和附加信号处理器的常见错误是,在附加对象的子对象中使用它们。这个属性可以让每一个独立的委托对象确定其是否是视图中当前选择的对象。因为附加类型的实例只是附加到了特定的对象,并不是对象及其所有子对象。,这样便允许这些对象访问附加类型中的属性和信号。上面的例子中,附加类型的名称是。附加信号处理器也是类似的。

2024-07-28 13:49:34 193

原创 QtQuick-QML类型系统-对象特性 (方法特性)

QML的方法可以用于定义JavaScript代码块,达到相对独立的可重用的目的。这些方法可以在内部调用,也可以被外部对象调用。与信号类似,同一作用域不能有两个同名的方法,若重名,则新的会隐藏旧的方法,旧方法变得不可访问。对象类型的方法就是一个函数,可以执行,也可以和信号关联,这样发射信号会自动调用。与信号不同,方法的参数类型可以不明确指定,因为默认情况下这些参数都是。但是为了提高性能和可维护性,建议指定参数的类型。宏进行注册的方式定义方法;在C++中,可以使用。

2024-07-28 13:23:28 224

原创 QtQuick-QML类型系统-对象特性(信号和信号处理器)

但是新的信号可以重用已有信号的名字,这意味着原来的信号会被新的信号隐藏,变得不可访问。信号处理器必须在发射信号的对象的定义中进行声明,其中包含调用时要执行的JavaScript代码块。特定的信号发射后,可以通过相应的信号处理器获得通知。函数,支持将一个信号与一个方法或者另外的信号连接起来,这与Qt/C++类似。除了上面的最基本用法,有时可能需要在发射信号的对象外部使用这个信号。除了自定义的信号,QML类型还提供了一种内建的属性值改变信号。其中信号处理器的形参名称不必与信号的参数名称匹配。

2024-07-27 23:48:57 400

原创 QtQuick-QML类型系统-对象特性(id和属性)

每一个QML对象类型都包含一组定义好的特性。每个对象类型的实例在创建时都会包含一组特性,这些特性是在该对象类型中定义的。下面将介绍它们,也可以在Qt帮助中通过QML QObject Attributes关键字查看。

2024-07-27 21:55:40 1303

原创 解决Qt MouseMoveEvent不触发

Qt的MouseMoveEvent只有在点下鼠标时移动才会触发,应该是为了提高性能。

2024-07-26 19:15:02 339

原创 解决Qt鼠标不移动enterEvent就不触发的问题

Qt的enterEvent依赖于鼠标移动,如果鼠标没移动,就不会触发。控件自己移动到鼠标下时,也不会触发enterEvent。解决办法:通过moveEvent来主动触发entterEvent。

2024-07-26 14:21:59 288

原创 Qt自定义MessageToast

文字长度自适应,自动居中到parent,会透明渐变消失。

2024-07-25 14:31:18 441

原创 QtQuick-QML类型系统-对象类型

数据类型可以是QML语言原生的,可以通过C++注册,可以由独立的QML文档作为模块进行加载,也可以由开发者通过C++类型或者定义QML组件来提供自定义的类型。不过,无论如何,QML引擎都会保证这些类型的属性和实例的类型安全。

2024-07-22 22:04:53 1019

原创 QtQuick-QML语法

QML是一种专门用于构建用户界面的编程语言,它允许与开发人员和设计者构建高性能的、具有流畅动画特效的可视化应用程序。QML文档是高度可读的、声明式的文档,具有类似JSON的语法,支持使用JavaScript表达式,具有动态属性绑定等特性。Qt 6 中通过导入Qt QML模块来使用QML语言,它定义并实现了QML语言及其解释引擎的基础构件,提供了供开发人员进行扩展的接口,以及将QML代码、JavaScript和C++集成在一起的接口。Qt QML模块既提供了QML接口,又提供了C++接口。

2024-07-21 20:04:06 542

原创 QtQuick-第一个程序

新建Qt Quick Application。新建images.qrc(注意设置并添加到CMakeLists.txt的):</</</

2024-07-21 17:40:15 304

原创 Qt去掉QTableView的虚线框

自定义代理类,重实现。

2024-07-15 19:23:23 181

原创 LVM调整VG和PV

LVM狠狠拿捏了

2024-07-13 16:10:04 165

原创 Qt MV架构 数据-窗口映射器

类的使用,也可以参考Simple Widget Mapper和Combo Widget Mapper示例程序,它们在Item Views分类中。类在数据模型的一个区域和一个窗口部件间提供了一个映射,这样就可以实现在一个窗口部件上显示和编辑一个模型中的一行数据。实例,然后为其设置了关联的模型,并设置了窗口部件和模型中对应列的映射,最后使用。参考资料:Qt Creator快速入门 (霍亚飞 著)函数来显示模型中上一行和下一行的数据。函数可以显示模型中嘴鸥一行的数据。函数来显示模型中第一行的数据。

2024-07-13 16:03:13 354

原创 Qt MV架构-代理模型

要使用一个代理模型,则只需要为其设置源模型,然后再视图中使用该代理模型即可。代理模型可以将一个模型中的数据进行排序或者过滤,然后提供给视图进行显示。参考资料:Qt Creator快速入门第2版 (霍亚飞 著)作为标准的代理模型来完成模型中数据的排序和过滤。这里使用了行编辑器中的文本作为正则表达式。

2024-07-13 15:42:55 282

空空如也

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

TA关注的人

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