3 龚建波

尚未进行身份认证

熟悉C++ Qt框架,Python等

等级
TA的排名 2w+

QML粒子系统制作心形效果

说明:虽然 5 月 20 号过了,还是把来画下心。为什么是绿色的?爱情长青!!!这里我用的QML的粒子系统。粒子模拟的核心是 ParticleSystem 控制共享时间线的。一个场景可以有多个粒子系统,每个粒子系统都有一个独立的时间轴。使用 Emitter 元素发射粒子,并使用使其可视化,元素 ParticlePainter 可以是图像,QML Item 或着色器 Item。发射器还使用矢量空间提供粒子的方向。发射的粒子不再可以由发射器操纵。粒子模块提供 Affector,可以在发射粒子后操纵粒子的

2020-05-21 14:21:50

《QDebug 2020年5月》

一、Qt Widgets 问题交流1.打印浮点数,输出小数精度不对Qt 和 cout 一样,浮点数输出有效位是 6 ,如果整数有效位数大于等于 6 ,那么就没小数部分了。下图为 Qt 源码的代码片段:测试如下: double a=123456,b=0.1234567; std::cout<<a<<" "<<b<<" "<<a+b<<std::endl; //123456 0.123457

2020-05-17 22:28:27

Qt使用QPainter绘制一个3D立方体

1.实现思路(网上有另一篇类似的,不过他不是用的 Qt 自带的矩阵运算类:https://blog.csdn.net/BIG_C_GOD/article/details/53285152)实现思路有点类似使用 OpenGL 画立方体,先准备顶点数据: //立方体前后四个顶点,从右上角开始顺时针 vertexArr=QVector<QVector3D>{ QVector3D{1,1,1}, QVector3D{1,-1,1

2020-05-16 21:43:19

QML使用ShaderEffect绘制环形进度条

0.前言之前用 Qt Widgets 的 QOpenGLWidget 类配合着色器写了下环形进度条(https://blog.csdn.net/gongjianbo1992/article/details/106043023),现在用 QML 的 ShaderEffect 重新写下,用的 Qt 默认的 OpenGL 版本,貌似是 OpenGL ES2.0 。ShaderEffect 是 QML 中用来对 Item 做着色器效果的组件,允许直接在 QML 中编写诸如阴影,模糊,着色和页面卷曲之类的效果

2020-05-12 15:22:12

OpenGL width QtWidgets:练习之绘制2D环形进度条

(本文是LearnOpenGL的学习笔记,教程中文翻译地址https://learnopengl-cn.github.io/)1.实现思路这里主要涉及三个点:绘制圆环,绘制文字,动画。绘制圆环网上有些人是计算好圆边的顶点后传入的,我这里直接在片段着色器里根据距离圆心的距离来渲染的圆环。void main(){ float len = abs(sqrt(pow(thePos.x,2)+pow(thePos.y,2))); float alpha = abs(len-0.75

2020-05-10 22:04:33

OpenGL width QtWidgets:基础光照

(本文是LearnOpenGL的学习笔记,教程中文翻译地址https://learnopengl-cn.github.io/)0.前言上一节学习了基础光照(https://blog.csdn.net/gongjianbo1992/article/details/104176837),教程在本节主要讲了冯氏光照模型,代码在上一节的基础上修改。1.知识点现实世界的光照是极其复杂的,OpenGL的光照使用的是简化的模型,其中一个模型被称为冯氏光照模型(Phong Lighting Model)。冯

2020-05-08 23:23:29

Windows上Qt源码调试(使用VS或Qt Creator)

这里分两种情况,使用 Qt Creator 或者 Visual Studio,我以 Qt5.12.6 和 VS2019 来做示例。1.使用 Qt Creator首先,确保自己的 CDB(MSVC用) 或者 GDB(MinGW用) 已经配置好了,不然你也没法调试。其中 GDB 安装的时候选了 MinGW 默认就有,而 CDB 需要自己装(https://blog.csdn.net/qq_32...

2020-05-07 23:53:27

QSqlDatabase二三事

QSqlDatabase 类用于处理与数据库的连接,提供用于通过连接访问数据库的接口,一个 QSqlDatabase 实例就代表了一个连接。使用前,我们先打印下有哪些驱动:qDebug()<<QSqlDatabase::drivers();// ("QSQLITE", "QMYSQL", "QMYSQL3", "QODBC", "QODBC3", "QPSQL", "QPS...

2020-04-14 20:37:25

《QDebug 2020年4月》

一、Qt Widgets 问题交流1.信号槽使用宏的方式连接,可以访问私有槽函数宏的方式可以访问 private slots:private slots: void test();//connect(ui->btn,SIGNAL(clicked(bool)),&test,SLOT(test()));使用 Qt5 的方式不能编译:connect(u...

2020-04-10 11:01:32

Python二叉树的遍历:深度优先(前序、中序、后序)和广度优先(层次)

准备二叉树(Binary Tree)是一种特殊的树型结构,它的特点是每个结点至多有两棵子树(即二叉树中不存在度大于2的结点),且二叉树的子树有左右之分,其次序不能任意颠倒(有序树)。在 Python 中,已有别人实现好的二叉树模块,即 binarytree,但是本文主要是学习二叉树遍历,就不介绍了。二叉树相关内容可自行学习。深度优先遍历:沿着每一个分支路径进行深入访问。前序、中序、后序都是...

2020-04-09 22:24:50

Python实现双向链表的增删改查排序反转等操作

双向链表结构链表由一连串的节点组成,双向链表节点中包含两个特殊的成员,一个用来指向前一个节点,一个用来指向后一个节点,如图所示(为了便于操作我们可以使用 head 和 tail 节点来做首尾):添加节点时,把该位置前后指向修改为新的节点,并且新的节点指向前后节点: def insert(self, prev, next): ''' 节点插入到两个节点之间 '...

2020-04-08 21:40:22

PyQt5,资源文件 .qrc 的使用

0.前言PyQt5 支持 Qt 的资源系统。这是用于在应用程序中嵌入图片和翻译文件等资源的工具。这使得这些资源的打包和分发更加容易。一个 .qrc 资源集合文件是用来指定文件将被嵌入其资源的 XML 文件。在 C++ Qt 的 IDE 中,我们添加资源后他会自动编译出二进制文件。但在 PyQt 中,我们需要手动来完成这些操作(我不用 Eric,不知道这上面可不可以)。1.未使用资源文件...

2020-04-07 14:13:48

Python实现单向链表的增删改查反转等操作

单向链表结构链表由一连串的节点组成,单向链表中节点包含一个用来存储下一个节点引用的成员,如图所示:因为单向链表只有一个指针/引用成员,所以操作起来不是很方便,很多地方都需要从头节点开始遍历。实现代码完整代码如下:class Node: ''' 节点的结构体 ''' def __init__(self,value=None): self.va...

2020-04-06 21:15:42

C++电子书和Qt电子书分享

(2019-10-13更新:链接失效了请留言,或加我QQ 654344883)C++电子书分享:https://pan.baidu.com/s/1P2ajxmyE2ZDtXMpRNvabpA提取码:ei2uQt电子书分享:https://pan.baidu.com/s/1mRqs1jwNPKZEciz1DIWiHw提取码:bw6h(由于百度云限速,所以有必要的话请科学下载;电子书...

2019-07-21 18:24:37

Qt实现排序的可视化

网上有很多排序可视化的动图,我也用QPainter来绘制了下,目前实现了冒泡排序、选择排序。(文末附 git 链接)实现思路这里面比较麻烦的是,每一次循环都需要暂停一段时间便于展示,但我们又不能在UI线程sleep,能想到的方法有:使用QEventLoop开启本地的事件循环,配合定时器来延时。但是测试的时候遇到个大问题,QEventLoop中途没法随意退出,会出现异常。 把排序操作...

2020-04-04 21:39:52

JavaScript 声明提升

函数声明提升假如有函数声明如下:func() //调用语句在声明之前function func () {}上例不会报错,正是因为 ‘函数声明提升’,即将函数声明提升到作用域顶部(注意是函数声明,不包括函数表达式),相当于:// 函数声明提升function func () {}func()但如果是函数表达式:func() //调用语句在声明之前var ...

2020-04-03 11:17:42

CSS 外边距合并

(原文:https://www.w3school.com.cn/css/css_margin_collapsing.asp)外边距合并指的是,当两个垂直外边距相遇时,它们将形成一个外边距。合并后的外边距的高度等于两个发生合并的外边距的高度中的较大者。外边距合并外边距合并(叠加)是一个相当简单的概念。但是,在实践中对网页进行布局时,它会造成许多混淆。简单地说,外边距合并指的是,当...

2020-04-02 21:34:30

CSS position定位

文档流文档流,指的是元素排版布局过程中,元素会自动从左往右,从上往下的流式排列。并最终窗体自上而下分成一行行,并在每行中按从左到右的顺序排放元素。让元素脱离文档流的方法有:浮动和定位(绝对定位/固定定位会脱离文档流)。默认定位 staticstatic 是 position 属性的默认值。即没有定位,元素在正常的流中,top,right,bottom,left 和 z‐index 属性...

2020-04-02 19:09:59

HTML form表单

目录表单标签表单域表单按钮input与label联合使用表单分组表单的初级验证参考HTML表单用于收集用户输入,主要分为表单标签及表单控件(控件又分表单域和按钮)。表单标签表单标签是一个包含表单元素的区域,可以包含一些表单控件,语法如下: <form method="GET|POST" action="处理数据的URL地址" name="表...

2020-04-01 21:40:56

Qt属性系统及Q_PROPERTY宏的使用

0.前言像某些编译器提供的平台特有的属性系统(Property System)一样,Qt也提供了一个复杂的属性系统。当然,作为一个跨平台框架,Qt没有依赖那些非标准的编译器特性,比如:__property或者[property]。Qt的解决方案适用于Qt支持平台下的任何标准C++编译器。它基于元对象系统(Meta Object Sytstem),该系统还提供了信号槽用于对象间通信。(本文主要翻...

2020-04-01 14:39:05

查看更多

CSDN身份
  • 博客专家
勋章 我的勋章
  • GitHub
    GitHub
    绑定GitHub第三方账户获取
  • 签到新秀
    签到新秀
    累计签到获取,不积跬步,无以至千里,继续坚持!
  • 阅读者勋章Lv1
    阅读者勋章Lv1
    授予在CSDN APP累计阅读博文达到3天的你,是你的坚持与努力,使你超越了昨天的自己。
  • 专栏达人
    专栏达人
    授予成功创建个人博客专栏的用户。专栏中添加五篇以上博文即可点亮!撰写博客专栏浓缩技术精华,专栏达人就是你!
  • 持之以恒
    持之以恒
    授予每个自然月内发布4篇或4篇以上原创或翻译IT博文的用户。不积跬步无以至千里,不积小流无以成江海,程序人生的精彩需要坚持不懈地积累!
  • 勤写标兵Lv3
    勤写标兵Lv3
    授予每个自然周发布7篇到8篇原创IT博文的用户。本勋章将于次周周三上午根据用户上周的博文发布情况由系统自动颁发。
  • 学习力
    学习力
    《原力计划【第二季】》第一期主题勋章 ,第一期活动已经结束啦,小伙伴们可以去参加第二期打卡挑战活动获取更多勋章哦。
  • 原力新人
    原力新人
    在《原力计划【第二季】》打卡挑战活动中,成功参与本活动并发布一篇原创文章的博主,即可获得此勋章。