自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(294)
  • 资源 (4)
  • 收藏
  • 关注

原创 Qt Designer的父子部件样式表设置学习

在Qt Designer中新建图像界面,放置两个QWidget,命名为widget_1和widget_2;单独改变了widget_2,但是隶属于widget_2的pushButton_1和pushButton_2并没有改变。需要注意的是,采用这种办法,如果被改变的小部件还有它的子部件,子部件并不跟随被改变的小部件的改变而改变。这里,将隶属于widget_1的类型为QPushButton的所有部件全部定义了新的显示特性。这个样式表的含义为:widget_1中,所有的QWidget都按照指定的样式表显示。

2024-07-27 00:13:29 1282

原创 使用OpenCV与PySide(PyQt)的视觉检测小项目练习

OpenCV与PyQt(或PySide)的联合使用,各取所长

2024-07-07 22:43:09 1150 4

原创 STM32CubeIDE新建项目过程记录备忘(九) A/D转换并用串口定时上报

本项目,是将一个模拟量A/D转换后用USART输出,用开发板上的芯片转换成RS232电平后定时上传给上位机。同时对最近的学习做一个总结,归纳记录一下从模板项目建立新项目的方法,以及底层代码应用代码分离的框架的建立。复制粘贴新项目更改.ioc文件名称设置GPIO管脚和外设功能设置时钟设置生成成对的.h和.c文件以及生成hex文件设置中断设置调试配置生成代码设置完成后就进入软件编程阶段。新建xxx_app.h和xxx_app.c文件xxx_app.h内声明功能的初始化函数原型和功能函数原型。

2025-08-06 22:35:39 688

原创 STM32CubeIDE新建项目过程记录备忘(八)使用通用定时器中断生成PWM波形

名词解释:PWM本例是一个PWM输出demo。

2025-08-05 17:18:24 337

原创 STM32CubeIDE新建项目过程记录备忘(七)通用定时器中断

基本定时器:只有计数,简单应用。通用定时器:能PWM,能编码,没死区。高级定时器:可用于电机驱动,带刹车,带死区。

2025-08-05 11:52:05 682

原创 STM32CubeIDE新建项目过程记录备忘(六)USART接收不定长数据

上一篇,实验了中断方式的USART接收,其过程是接收缓冲区接收到的的数据长度达到设定字节后调用回调函数进行处理,并开启下一次接收。在实际的工程中很多通信数据的帧长度并不确定,本篇就是要解决这个问题。

2025-08-04 11:42:12 919

原创 STM32CubeIDE新建项目过程记录备忘(五)中断方式的USART串口通信

在STM32CubeIDE新建项目过程记录备忘(一) 创建一个基础的模板-CSDN博客里面,我已经将PA9和PA10配置为USART1的TX和RX,并完成了串口参数的设置。

2025-08-02 10:37:49 1119

原创 STM32CubeIDE新建项目过程记录备忘(四)EXTI外部中断

使用外部中断的方式检测按钮。

2025-08-01 12:05:04 804 1

原创 STM32CubeIDE新建项目过程记录备忘(三)GPIO的输入检测

GPIO的输入检测。我的板子,PC13接了一个按钮,在按钮两端有消抖电容,用以消除机械触点的抖动。PC13接有落地电阻R11,用途是降低输入阻抗,减少干扰。

2025-07-31 10:29:01 125

原创 STM32CubeIDE新建项目过程记录备忘(二) GPIO输出demo:LED闪烁

利用前面创建好的基础模板项目文件,创建第一个应用项目,单片机的hello world:LED闪烁。

2025-07-30 22:53:00 414

原创 STM32CubeIDE新建项目过程记录备忘(一) 创建一个基础的模板

• Data Direction:选择 “Transmit and Receive”(收发模式)。复制粘贴这个cfg文件,并重命名为dap.cfg(可自定义名字,是英文的即可)• Over Sampling:选择 “8” 或 “16”(过采样率)。无报错,并且控制台出现以下内容,就成功下载:(不要理会它的字体红颜色)选择固件版本,如果已有下载好的固件,要选择与已有固件相同的版本。• Mode:选择 “Asynchronous”(异步模式)。• Word Length:设置数据位,通常为 8 bits。

2025-07-29 17:36:32 479

原创 通信名词解释:I2C、USART、SPI、RS232、RS485、CAN、TCP/IP、SOCKET、modbus等

协议 / 接口传输方式速率距离典型应用场景I2C串行同步(2 线)低速(≤3.4Mbps)短(板内)芯片间通信SPI串行同步(4 线)高速(≤50Mbps)短(板内)高速外设通信USART串行异步 / 同步中速(≤2Mbps)中(数米)设备间串口通信RS232单端串行低速(≤115200bps)短(≤15 米)传统设备通信RS485差分串行中速(≤10Mbps)长(≤1200 米)工业分布式网络CAN差分串行中高速(≤1Mbps)

2025-07-27 21:37:38 1147

原创 STM32基础知识学习笔记:ICODE、DCODE、DMA等常见名词的解释

STM32 的 DMA 控制器通常包含多个独立通道(如 STM32F1 系列有 DMA1 的 7 个通道和 DMA2 的 5 个通道),每个通道可对应不同的外设请求(如 ADC、SPI、UART、TIM 等),支持同时处理多个外设的数据传输。总之,APB 是 STM32 中负责低速外设连接的 “辅助通道”,与 AHB 总线分工协作,既保证了系统核心的高性能,又兼顾了外设的低成本和低功耗需求,是嵌入式微控制器总线架构的重要组成部分。在 STM32 中,Flash 不仅存储程序指令,还存储常量数据。

2025-07-25 15:45:15 618

原创 C 语言的指针复习笔记

指针是 C 语言的灵魂,其核心是 "通过地址间接操作内存"。指针的声明与初始化(指向有效内存);解引用()和取地址()的操作;指针与数组、函数的结合使用;动态内存分配中指针的管理;规避野指针、内存泄漏等常见错误。

2025-07-21 20:51:58 529

原创 pyautogui库的一些鼠标操作

pyautogui是一个跨平台的自动化库,提供了很多方便的功能,包括获取鼠标位置和对鼠标进行一些操作。

2025-07-07 23:20:50 494

原创 优象光流模块,基于python的数据读取demo

优象光流模块,型号UP-FLOW-LC-302-3C,准备将其应用于设备的运行速度测量,物美价廉。与官方的给定略有出入,不过主要字节的顺序是对的。

2025-07-04 22:20:21 218

原创 二维标记系统ArUco

ArUco是计算机视觉中广泛使用的二维 fiducial 标记系统,专为高精度定位和姿态估计设计。ArUco 是 OpenCV 库中的一个模块,基于 ARTag 开发。

2025-06-26 17:14:17 513

原创 海康威视工业相机,获取图像的两种方法:MV_CC_GetImageBuffer与MV_CC_RegisterImageCallBackEx 的区别

在海康威视的 Python SDK 里,和这两个函数都是用于获取图像数据的。主动获取图像:通过调用该函数,应用程序直接从 SDK 的内部缓冲区中获取图像数据。1. 调用MV_CC_StartGrabbing() 启动图像采集。2. 在应用层循环调用MV_CC_GetImageBuffer() ,取图的线程阻塞等待相机返回图像数据,如果有设置超时,超时后返回无图像ret并启动下一个调用循环。3. 处理完图像数据后,调用MV_CC_FreeImageBuffer()释放缓冲区。

2025-06-24 22:47:29 567

原创 海康威视GidE工业相机的Bayer格式图像数据处理

接上篇。

2025-06-23 12:03:23 433

原创 海康威视GigE工业相机的python调用demo

默认路径安装完成后,在路径C:\Program Files (x86)\MVS\Development\Samples\Python\BasicDemo下的BasicDemo.py中,海康威视官方提供了基本的调用方法,本文也是基于这个修改的。BasicDemo.py提供了通过枚举选择相机的方法,在官方的另一个DEMO:ConnectSpecCamera.py中提供了另一种不通过枚举,直接访问特定IP相机的方法,也可以参考。另外,如果每台相机都定义了唯一的用户定义名,也可以通过用户定义名来区分相机。

2025-06-17 22:36:45 1268 5

原创 python的海象运算符 :=

海象运算符(Walrus Operator)是 Python 3.8 版本引入的一个新特性,其符号为:=。海象运算符”这个名字源于其外观,:=这一符号组合看起来和海象的眼睛与长牙有几分相似。它的主要作用是在表达式内部进行赋值操作,这样可以减少代码的重复,使代码更加简洁和高效。

2025-03-28 23:07:01 364

原创 pyside6的QGraphicsView体系,当鼠标位于不同的物体,显示不同的右键菜单

【代码】pyside6的QGraphicsView体系,当鼠标位于不同的物体,显示不同的右键菜单。

2025-03-24 22:42:50 405

原创 PySide(PyQt),QGraphicsView 类的橡皮筋选择框的 rubberBandChanged 信号与拖动模式QGraphicsView.DragMode

当用户开始拖动鼠标创建橡皮筋选择框、拖动过程中橡皮筋选择框的大小和位置发生变化,或者释放鼠标结束橡皮筋选择框的创建时,从运行结果看得出,当松开鼠标时,发送了一个全0信号,用以复位矩形区域,可以将其作为选择结束的标志,来进行下一步的操作。信号在橡皮筋选择框的状态发生变化时被发射。橡皮筋选择框是用户通过鼠标拖动在视图中创建的一个矩形框,常用于选择。函数用于设定视图的拖动模式,此模式决定了用户在视图里进行鼠标拖动操作时的行为表现。在 PySide6 中,在 PySide6 里,,这个参数定义了不同的拖动模式。

2025-03-21 22:49:03 384

原创 python的MRO学习笔记

在Python中,MRO(Method Resolution Order)即方法解析顺序,它定义了在多重继承的情况下,Python 解释器查找方法和属性的顺序。

2025-03-21 09:23:48 516

原创 用于AI-CV项目标注的文本项模型

功能:文本图形项,使用了QGraphicsObject的。重新定义了右键菜单。

2025-03-18 23:15:59 278

原创 用于AI-CV项目标注的星标模型

功能:生成星标图形项,并在目标点上将底图颜色反色显示,当定位和拖动后输出底图在标记点的像素值。输入和输出使用信号槽机制。

2025-03-17 18:07:27 770

原创 PySide(PyQt),QGraphicsItem的坐标映射转换函数

类提供了多个映射函数,用于在不同坐标系(例如:项目坐标系、父坐标系和场景坐标系)之间转换坐标和矩形。这些函数非常有用,尤其是在处理复杂的图形场景和需要精确位置信息的情况下。这些函数对于处理和转换不同图形元素之间的相对位置和尺寸非常有用。通过使用这些函数,你可以确保所有项目在同一个参考框架下正确渲染和计算,这对于构建复杂界面或进行精细化的图形操作非常重要。在PySide6中,

2025-03-17 12:04:14 396

原创 python的@typing.overload学习笔记

typing.overload 是 Python 标准库 typing 模块中的一个装饰器,用于定义函数的多个重载版本。它的主要作用是提供更详细的类型信息,帮助开发者理解函数在不同情况下的预期输入和输出类型,同时也能增强静态类型检查工具(如 mypy)的能力,以检测潜在的类型错误。@typing.overload 是 Python 中类型提示(type hinting)的一部分,用于指示函数或方法的不同重载版本。通常,@typing.overload 与实际的函数实现结合使用。

2025-03-14 11:28:34 362

原创 PySide(PyQt),使用types.MethodType动态定义事件

以PySide(PyQt)的图片项为例,比如一个视窗的场景底图是一个QGraphicsPixmapItem的,需要修改它的鼠标滚轮事件,以实现鼠标滚轮缩放显示的功能。为了达到这个目的,可以重新定义一个QGraphicsPixmapItem类,并重写它的wheelEvent()函数:然后再代码中实例化这个类就可以了,这没有任何问题。 首先,场景中只有这一个场景底图,而且我只需要修改它的鼠标滚轮事件响应这一个函数,为了这简单的一个需求重建一个新的类,不是那么优雅。然后,鼠标滚轮缩放显示的这个

2025-03-13 16:45:23 1001

原创 Python的types库学习记录

types 库提供了一些有用的工具和常量,帮助开发者在运行时处理和操作不同类型的对象。通过使用这些工具,开发者可以实现动态类型检查、动态方法绑定和动态模块创建等功能。

2025-03-13 15:19:06 371

原创 PySide(PyQt),QGraphicsItem的父子图像项的一个练习demo

在 PySide( PyQt)中,是用于在中创建可绘制对象的基类。支持父子关系,这种父子关系允许将多个图形项组合在一起,形成一个层次结构。当父项在场景中添加、移除以及移动、旋转或缩放时,子项会相应地跟随父项进行操作和变换。

2025-03-12 16:08:13 446

原创 PySide(PyQT),QGraphicsItem的pos()和scenePos()区别

特性pos()scenePos()坐标系父项坐标系(局部坐标)场景坐标系(全局坐标)顶层项如果没有父项,pos() 和 scenePos() 的值相同总是返回场景中的绝对位置有父项返回相对于父项的位置返回场景中的绝对位置用途操作局部位置获取全局位置• pos()表示图形项在其父项坐标系中的位置。• scenePos()表示图形项在场景坐标系中的绝对位置。• 根据需求选择合适的坐标系和方法,可以更灵活地操作和管理图形项的位置。

2025-03-11 23:18:59 983

原创 PySide(PyQT),QGraphicsRectItem的setPos()和setRect()的坐标位置的区别

上述代码的含义是创建一个QGraphicsRectItem实例,并且等同于执行了setRect(0, 0, 120, 60),由于没有设置它的pos(),所以它在场景中的位置是(0, 0)。之后,用鼠标就可以将图形项QGraphicsRectItem在场景中拖动,拖动之后改变的是图形项的pos()参数,即他在父项坐标系的位置,本例中即为场景的坐标系。即setRect()设定的参数,参照系仍然是相对于图形项原点的位置。

2025-03-11 22:46:27 493

原创 PySide(PyQT)的mouseMoveEvent()和hoverMoveEvent()的区别

简单来说,它主要处理鼠标拖动操作。QMouseEvent 提供了丰富的信息和方法,例如可以使用 buttons() 方法来检查哪些鼠标按钮被按下,使用 pos() 方法获取鼠标相对于图形项的位置,使用 scenePos() 方法获取鼠标在场景中的位置等。当鼠标在对应的图形项上移动,且没有任何鼠标按钮被按下时,hoverMoveEvent 会被触发,也就是单纯的鼠标悬停移动。需要注意的是,要使图形项能够接收悬停事件,必须调用 setAcceptHoverEvents(True) 方法来启用悬停事件的接收。

2025-03-11 11:25:22 538

原创 PySide(PyQT)的contains() 方法

在 PySide中,contains()方法主要用于判断点、矩形或其他区域是否包含在某个特定的矩形或区域内。

2025-03-09 17:04:22 282

原创 python,isinstance() 和type()的区别

当需要判断一个对象是否具有某种特定的行为或属性,而不关心它具体是哪个类的实例,只要它是某个类或其子类的实例就满足条件时,通常使用。比如在多态的场景中,不同的子类可能都实现了某个特定的方法,只需要判断对象是否是能够调用这个方法的类的实例即可。:当需要严格判断对象的类型,不希望考虑继承关系,只关心对象是不是某个特定类的实例,而不是其子类的实例时,使用。返回的是对象的直接类型,不会考虑继承关系,即便是子类的实例,它也只返回子类本身的类型,而不会返回父类的类型。函数主要用于返回对象的类型。

2025-03-09 11:48:36 406

原创 PySide(PyQT)的视图(QGraphicsView)范例(三) 后端代码

前面的系统规划已经明确了本项目使用右键菜单和信号槽来实现,所以每个功能组件都要有右键弹出功能,而且不同的组件和工作状态可能需要不同的右键菜单;另外每个代码板块要有信号出入接口,板块之间通过信号传递信息,在板块内通过槽函数实现功能。

2025-03-07 18:17:28 697

原创 PySide6的QFileDialog.getOpenFileName()打开特别慢的原因

在默认情况下,也就是上述的代码,QFileDialog.getOpenFileName 会使用操作系统提供的原生文件选择对话框。发现选择了文件之后,需要经过很长时间才能显示图片,有时甚至到10秒之久。解决方法:不使用系统原生对话框(options=QFileDialog.DontUseNativeDialog),而是使用QT自带的文件对话框。

2025-03-07 16:21:46 308

原创 PySide(PyQT)的视图(QGraphicsView)范例(二) 功能规划

• 当点击了“保存规则”或“退出编辑”,退出编辑模式,进入空闲模式,鼠标变回箭头光标。当点击了“保存规则”,将规则的内容:框的位置(绿色边框)、规则的正则公式、取样点的位置保存到JSON或者数据库文件。• 当点击了“新建规则”,进入编辑模式,鼠标变为十字光标,按住鼠标左键画红色的框,确定或更新取样范围;在规则方框范围内单击鼠标,增加取样点,并在取样点上显示取样图标。• 当点击了“编辑当前规则”,又进入编辑模式,与前述的点击了“新建规则”进入的编辑模式相同。根据以上需求,设计信号和槽以及右键事件。

2025-03-05 21:38:03 361

原创 PySide(PyQT),怎样在非QObject对象上应用信号槽框架

在 PySide(以及 PyQt)中,信号和槽机制是基于QObject 类实现的。只有继承自 QObject 的类才能够定义和使用信号与槽。那么如果画面中的对象不是QObject 类,就无法使用信号和槽。QGraphicsRectItem.__init__(self, *args) 和 QObject.__init__(self),显式地调用了父辈的构造函数并指定入参分配。

2025-03-05 01:01:27 455

pyside6自定义部件库和软件框架进度记录v2

pyside6自定义部件库和软件框架进度记录v2

2024-04-16

pyside6自定义部件库和软件框架进度记录v1

pyside6自定义部件库和软件框架进度记录v1

2024-04-11

pyqt5的组合式部件制作(四)的资源

pyqt5的组合式部件制作(四)的资源

2023-11-22

pyqt5的组合式部件制作(四)资源

pyqt5的组合式部件制作(四)资源

2023-11-22

pyqt5的组合式部件制作(二)

pyqt5的组合式部件制作(二)

2023-11-08

pyqt5的组合式部件制作(一)阶段资源

pyqt5的组合式部件制作(一)阶段资源

2023-11-07

我用PYQT5做的第一个实用的上位机项目(五)

我用PYQT5做的第一个实用的上位机项目(五)

2023-10-09

我用PYQT5做的第一个实用的上位机项目(四)配套资源

我用PYQT5做的第一个实用的上位机项目(四)配套资源

2023-10-04

我用PYQT5做的第一个实用的上位机项目(三)

我用PYQT5做的第一个实用的上位机项目(三)的资源文件

2023-10-03

我用PYQT5做的第一个实用的上位机项目(二)资源

我用PYQT5做的第一个实用的上位机项目(二)资源

2023-09-28

使用PYQT5简单制作动态仪表盘

使用PYQT5简单制作动态仪表盘

2023-09-17

PYQT制作动态时钟,使用了直接读取和旋转图片的方法

PYQT制作动态时钟,使用了直接读取和旋转图片的方法

2023-09-15

用Qlabel制作的自定义带图片的按钮

用Qlabel制作的自定义带图片的按钮

2023-08-22

博途利用MOVE-BLK-VARIANT实现混合数据类型的块移动

MOVE_BLK_VARIANT范例

2023-06-26

python与PLC通信的数据转换

python与PLC通信的数据转换

2023-06-23

数组的创建以及将二维数组转换成为一个连续的一维数组

数组的创建,选择和不选择输入连接的区别。以及将二维数组的两个维连接起来转换成为一个连续的一维数组

2023-04-17

LABVIEW调用C++的dll

编译好的深度学习dll,用labview调用

2023-04-17

西门子STL中文编程手册

西门子PLC的STL中文编程手册,带目录

2023-03-27

试试用pyqt做一个上位机软件,但愿不会烂尾(八)的资源

两个功能简单的测试页面,先不考虑界面的美化,以实现简单功能为目标。美学和人体工程学的最后再说。

2023-03-20

试试用pyqt做一个上位机软件,但愿不会烂尾(七)配套资源

pyqt的进度条显示只能接受整数输入,不能直接显示小数,采用了折中的办法,重新定义了进度条的text()函数。然后将输入的整数除以10的倍数,传递到text()函数中进行显示,比如说想显示一小数就除以10。顺便搞了几种常用的颜色方案,封装入库,以备调用。

2023-03-17

试试用pyqt做一个上位机软件,阶段5的源码

试试用pyqt做一个上位机软件,阶段5的源码

2023-03-11

试试用pyqt做一个上位机软件,但愿不会烂尾(四)的资源

试试用pyqt做一个上位机软件,但愿不会烂尾(四)的资源

2023-03-08

自制PYQT5指示灯资源

自己使用的指示灯资源,用的时候按住CTRL直接拖到新窗口即可

2023-03-08

试试用pyqt做一个上位机软件,但愿不会烂尾(二)资源

试试用pyqt做一个上位机软件,但愿不会烂尾(二)资源

2023-03-08

配套的资源文件,记录一下过程

学习简单SCADA用到的资源

2023-03-08

labview检测并显示移动物体的练习,有参考别人

abview检测并显示移动物体,并算出最大的物体移动速度

2022-07-31

用labview检测移动物体的练习程序

用IMAQ Absolute Difference将连续采集的图像相邻帧的像素差显示出来,可用于运动目标检测

2022-07-30

LABVIEW强制类型转换以及强制转换为类型二者的区别

初学,有些概念比较模糊,做了一个小程序对二者的区别加以总结

2022-05-27

一个基本的pyside6项目模板demo

一个基本的pyside6项目模板demo

2025-02-23

基于深度学习的视觉检测小项目(十七) 用户管理后台的编程

用户管理阶段的资源

2025-02-03

基于深度学习的视觉检测小项目(十一) 动态样式表的实践

基于深度学习的视觉检测小项目(十一) 动态样式表的实践

2025-01-12

pytorch基础知识和函数的学习:卷积的基本理解

pytorch基础知识和函数的学习:卷积的基本理解

2024-08-25

pytorh基础知识和函数的学习:图像文件的Tensor

pytorh基础知识和函数的学习:图像文件的Tensor

2024-08-24

Qt Designer,仿作一个ui界面的练习(四):编写代码文章的资源

Qt Designer,仿作一个ui界面的练习(四):编写代码文章的资源

2024-07-30

PySide(PyQt)使用QPropertyAnimation制作动态界面

PySide(PyQt)使用QPropertyAnimation制作动态界面

2024-07-25

PySide(PyQt),自定义图标按钮的资源

PySide(PyQt),自定义图标按钮的资源

2024-07-23

Pyside使用Qt Designer和uic工具的基本框架的demo

Pyside使用Qt Designer和uic工具的基本框架的demo

2024-07-17

pyside6的特殊按钮(互锁、自锁、独占模式)文章的ui资源

pyside6的特殊按钮(互锁、自锁、独占模式)文章的ui资源

2024-06-20

pyside6的特殊按钮(互锁、自锁、独占模式)文章的ui资源

pyside6的特殊按钮(互锁、自锁、独占模式)文章的ui资源

2024-06-19

pyside6自定义部件库和软件框架进度记录

pyside6自定义部件库和软件框架进度记录的资源

2024-04-16

空空如也

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

TA关注的人

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