一种解决labelme启动时,QPoint出现问题的方法

一、报错内容:

Traceback (most recent call last):
  File "E:\labelme\widgets\canvas.py", line 494, in paintEvent
    p.translate(self.offsetToCenter())
                ^^^^^^^^^^^^^^^^^^^^^
  File "E:\labelme\widgets\canvas.py", line 531, in offsetToCenter
    return QtCore.QPoint(x, y)
           ^^^^^^^^^^^^^^^^^^^
TypeError: arguments did not match any overloaded call:
  QPoint(): too many arguments
  QPoint(xpos: int, ypos: int): argument 1 has unexpected type 'float'
  QPoint(a0: QPoint): argument 1 has unexpected type 'float'

Traceback (most recent call last):
  File "E:\labelme\widgets\canvas.py", line 494, in paintEvent
    p.translate(self.offsetToCenter())
                ^^^^^^^^^^^^^^^^^^^^^
  File "E:\labelme\widgets\canvas.py", line 531, in offsetToCenter
    return QtCore.QPoint(x, y)
           ^^^^^^^^^^^^^^^^^^^
TypeError: arguments did not match any overloaded call:
  QPoint(): too many arguments
  QPoint(xpos: int, ypos: int): argument 1 has unexpected type 'float'
  QPoint(a0: QPoint): argument 1 has unexpected type 'float'

二、报错分析:该错误表明QPoint函数期望接受整数参数,但是实际接收到的却是浮点数。

三、解决方案:

根据分析,打开报错的文件canvas.py文件(顺着报错信息去找),找到定义的offsetToCenter函数:

将最后的返回值return那行改为:

return QtCore.QPoint(int(x), int(y))

就顺利打开了:

!!!注意!!!

如果在标注数据的时候出现类似的报错:“期望接受整数参数,但是实际接收到的却是浮点数”,那么需要考虑环境的问题。如果python环境是3.11(我原本的环境),那么会一直报错。

因此,需要重新建一个虚拟环境(python3.8以下的吧,我的是python3.7,标注时候没啥问题了),然后再重新装labelme。如果你是conda环境,直接python=3.7就好了,不用自己安装别的版本的python了。


  • 5
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值