- 博客(10)
- 收藏
- 关注
原创 python实现回调函数,自定义事件
最近一个项目,需要实现自定义事件,发现python对于事件好像没有一个非常标准的封装,或者是原语,下面是自己去实现的一个类似事件的方法,逻辑上参考了.net实现事件的方法,也就是特殊的委托。1. python回调函数如果对于python回调函数比较熟悉,可以跳过。讲实话,论坛上基本上说的什么回调函数,只不过是把函数当做参数传递,这种方式也能称之为“回调”函数吗,可能是我浅薄了。。。def funcA(a, b): return a + bdef funcB(a, b, c, f
2021-12-24 16:26:01 5218 1
原创 python中bytearray,bytes转str的坑
先讲原理。搞清楚bytes和bytearray为什么Python弱化类型?为什么Python弱化类型!为什么Python弱化类型!!!因为类型的关系,在我debug查资料的时候,一直默认bytes和bytearray是一种东西,就像二哈和阿拉斯加雪橇犬,产品经理和二哈,没有本质的区别。其实不然,bytes是定长的二进制数据,bytearray是byte数组。这样就造成他们所能够使用的函数不同。比如bytearray就不能够使用encode和decode函数,因为它本质上是数组。bytes
2021-09-09 20:22:19 1506
原创 标准Modbus-TCP
使用TCP不需要校验。后文所说的寄存器,也可能指线圈,离散输入等,具体视功能码而定。master端共发送12字节示例:00 3d 00 00 00 06 01 01 00 00 00 10第1,2字节[00 3d]:序列码,每次+1。当master端发送序列码为00 3d,则slave端也需要返回以00 3d打头的消息,以保证每帧的消息发送和接受不会出错。第3~5字节[00 00 00]:意义不明,可能只是为了分隔。第6字节[06]:固定为06,表示请求。第7..
2021-09-09 16:03:20 1410
原创 Qt · 记一个视图框架(QGraphics)渲染错误的解决方法
移动item时,如果有实时碰撞检测,可能由于检测过程中,scene并没有实时渲染完成就急忙输出(猜想是Qt内核对碰撞检测和移动item做了多线程操作,导致不同步)。我们需要添加一个scene->update(),即可解决。实时的碰撞检测,一般是通过编写scene->chenged信号的槽函数实现的。当scene中的item增加、删除、移动、item树变动,都会引发chenged信号。在changed槽函数中,添加scene->update(),每次完成检测后手动的更新渲染视图...
2021-08-01 15:04:08 521
原创 Qt QGraphicsView拖拽(移动)、缩放
谦虚的话就不说了,我也是小白,仅供参考(还是说了)先讲原理,只有明白原理之后才能开始做事。首先需要明白,view在整个视图框架中的角色是用于显示scene的,所以决定了如何展示scene,包括scale()函数,用于放大缩小所展示的scene;centerOn()函数,决定scene的中心在何方。所有的操作,都不会直接改变scene,改变的只是如何展现scene。一、缩放先来说缩放,因为缩放最为简单。主要使用到scale()函数。该函数用于缩放场景,但是并不是改变了scene的大小尺寸,
2021-08-01 10:37:29 20607 17
原创 Qt QGraphicsTextItem居中/左对齐/右对齐
刚刚开始想学习Qt,不是很了解,做居中操作的时候看了很多大佬的写法不是非常理解,这里按照自己的理解写的比较简单的实现,具体需要boundingRect()函数获取宽度信息,就可以以给定参数定位。二话不说,线上代码:QGraphicsTextItem* MainWindow::createTextItem(QString text, int fontSize, int alignState, QPointF pos){ /* 0 ------- align left
2021-07-29 07:18:18 3325 1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人