关于labelimg安装后在标注过程中闪退和死机的问题处理

labelimg安装后在标注过程中闪退和死机,并在控制台出现如下错误提示:

raceback (most recent call last): File "D:\dev\python3.12.0\Lib\site-packages\libs\canvas.py", line 530, in paintEvent p.drawLine(self.prev_point.x(), 0, self.prev_point.x(), self.pixmap.height()) 运行labelimg时候出现如下错误:TypeError: arguments did not match any overloaded call: drawLine(self, l: QLineF): argument 1 has unexpected type 'float' drawLine(self, line: QLine): argument 1 has unexpected type 'float' drawLine(self, x1: int, y1: int, x2: int, y2: int): argument 1 has unexpected type 'float' drawLine(self, p1: QPoint, p2: QPoint): argument 1 has unexpected type 'float' drawLine(self, p1: UnionQPointF, QPoint, p2: UnionQPointF, QPoint): argument 1 has unexpected type 'float'

经过查找资料发现是labelimg版本不能PQ5版本兼容出现的问题,具体的说是使用的 Python 版本较高(当前是 Python 3.12),而 LabelImg 这个工具在较新的 PyQt5 库中,绘图函数不再支持传入浮点数(float),必须强制转换为整数(int)。

具体处理的方法如下:

1. 修改 canvas.py 文件(解决核心报错)

根据报错提示,找到 D:\dev\python3.12.0\Lib\site-packages\libs\canvas.py 这个文件,用文本编辑器(如记事本、VS Code等)打开它。

找到第 530 行左右的代码:

p.drawLine(self.prev_point.x(), 0, self.prev_point.x(), self.pixmap.height())

将其修改为(在坐标数值外包裹 int() 进行强制转换):

p.drawLine(int(self.prev_point.x()), 0, int(self.prev_point.x()), int(self.pixmap.height()))

建议顺手修复同文件下的其他潜在报错

为了防止后续出现类似的闪退,建议同时检查并修改该文件中第 526 行和第 531 行的代码:

  • 第 526 行修改为:
    p.drawRect(int(left_top.x()), int(left_top.y()), int(rect_width), int(rect_height))
  • 第 531 行修改为:
    p.drawLine(0, int(self.prev_point.y()), int(self.pixmap.width()), int(self.prev_point.y()))

2. 修改 labelImg.py 文件(预防滚动闪退)

在高版本 Python 中,滚动鼠标滚轮时也容易触发类似的 float 类型报错。建议提前修复:

找到 D:\dev\python3.12.0\Lib\site-packages\labelImg\labelImg.py 这个文件并打开。

找到第 965 行左右(通常在 scroll_request 函数内)的代码:

  • bar.setValue(bar.value() + bar.singleStep() * units)

  • 将其修改为:

  • bar.setValue(int(bar.value() + bar.singleStep() * units))

  • 经过以上修改有效的解决上述问题。

相关推荐
2601_9516437714 分钟前
Python第一,Java跌出前三,C语言杀回来了
java·c语言·python·编程语言排行·技术趋势
小小编程路14 分钟前
C++ 异常 完整讲解
开发语言·c++
AI科技星1 小时前
数术工坊 · 第四卷 橡皮泥江湖(拓扑学)【完整定稿】
c语言·开发语言·汇编·electron·概率论·拓扑学
张忠琳1 小时前
【Go 1.26.4】Golang Select 深度解析
开发语言·后端·golang
AC赳赳老秦2 小时前
OpenClaw+Power Apps 实战:自动生成 Power Apps 应用、连接 Excel 数据源
大数据·开发语言·python·serverless·excel·deepseek·openclaw
提笔了无痕2 小时前
如何用Go实现整套RAG流程
开发语言·后端·golang
(Charon)2 小时前
【C++ 面试高频基础:指针、引用、const、static、new/delete 总结】
java·开发语言
2601_961875243 小时前
法考考试时间安排及科目|时间表|资料已整理
开发语言·c#·inverted-index·suffix-tree·sstable·r-tree·lsm-tree
AI科技星3 小时前
数术工坊第八卷:算力革命
c语言·开发语言·网络·量子计算·agi
geovindu3 小时前
go: Generators Pattern
开发语言·后端·设计模式·golang·生成器模式