解决labelimg闪退问题 TypeError: setValue(self, a0: int): argument 1 has unexpected type ‘float‘

张开发
2026/4/17 20:22:24 15 分钟阅读

分享文章

解决labelimg闪退问题 TypeError: setValue(self, a0: int): argument 1 has unexpected type ‘float‘
下载的labelimg一开始标注就报错如下图所示本文labelImg版本为1.8.6 为什么会变成 float在 LabelImg 里鼠标事件用的是QPointFcanvas 缩放/transform 后坐标变成 float或者做过scale运算导致算出来的值是float类型但是PyQt接收是int类型所以最简单的解决方案就是强制转为int类型。1.在canvas.py文件中将第526行530行和第531行修改如下p.drawRect(int(left_top.x()), int(left_top.y()), int(rect_width), int(rect_height))p.drawLine( int(self.prev_point.x()), 0, int(self.prev_point.x()), int(self.pixmap.height())) p.drawLine( 0, int(self.prev_point.y()), int(self.pixmap.width()), int(self.prev_point.y()))2.在labelimg.py中修改第965行如下bar.setValue(int(bar.value() bar.singleStep() * units))修改之后在进行标注工作labelImg就不会闪退。若未解决可直接下载labelImg源代码来使用。

更多文章