Xubuntu22.04装有道词典:报错has unexpected type “float“(一百四十一)

本文讲述了在高版本Xubuntu 22.04中遇到的有道词典启动错误,通过分析log发现类型不匹配问题,并详细介绍了修复步骤:创建目录、解压deb包、修改源代码中float类型为int、重新打包和安装。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

注意:python版本必须是python3.10以上才能运行.

1.前言:

在高版本Xubuntu22.04安装有道词典后,启动时,界面无法启动,通过手动启动后,发现以下报错log。

# youdao-dict

File "/usr/share/youdao-dict/app/plugins/youdao/window.py", line 288, in showCenter
    self.setX(x)

File "/usr/share/youdao-dict/dae/window.py", line 644, in showCenter
    self.move(x, y)

TypeError: arguments did not match any overloaded call:
  move(self, QPoint): argument 1 has unexpected type 'float'
  move(self, int, int): argument 1 has unexpected type 'float'

提示:

从上边的log看出,有道词典的是因为需要传入的使int类型,但实际给的是float类型,需要作下手动转换下类型。

  本质原因是高版本的python版本导致的,因为有道词典调用的api比较老的缘故。

2.解决

1.创建待用目录
# mkdir -p  youdao/DEBIAN


2.解压.deb        
# dpkg -X youdao-dict_6.0.0-ubuntu-amd64.deb youdao


3.解压deb包中的control信息 
# dpkg -e youdao-dict_6.0.0-ubuntu-amd64.deb youdao/DEBIAN      


4.修改代码
<1>.float转int类型
usr/share/youdao-dict/app/plugins/youdao/window.py
    def showCenter(self):
        # show center
        desktop = QtWidgets.qApp.desktop()
        geometry = desktop.screenGeometry(desktop.primaryScreen())
        x = geometry.x() + (geometry.width() - self.width())/2
        y = geometry.y() + (geometry.height() - self.height())/2
+       self.setX(int(x)) 
+       self.setY(int(y))
        self.show()
        
        
        
<2>.float转int类型
usr/share/youdao-dict/dae/window.py
    def showCenter(self):
        screen = qApp.primaryScreen()
        geometry = screen.availableGeometry()
        x = geometry.x() + (geometry.width() - self.width())/2
        y = geometry.y() + (geometry.height() - self.height())/2
+       self.move(int(x), (y))
        self.show()


5.重新打包
# dpkg -b debin/ youdao.deb       


6.卸载已安装.deb包
# sudo dpkg -r youdao-dict

7.重新安装
# sudo dpkg -i youdao.deb





3.运行图示 

                                                      Enjoy it!!!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Android系统攻城狮

你的鼓励将是我创作的最大动力!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值