Python TypeError求助:loadshotlist_comp()参数不匹配问题
解决TypeError: loadshotlist_comp() takes 1 positional argument but 2 were given
嘿,这个错误其实很典型——就是参数不匹配导致的,咱们一步步来拆解问题和解决方案:
错误原因拆解
你在retranslateUi方法里调用了self.loadshotlist_comp(_translate),这里Python会自动把self作为第一个参数传给loadshotlist_comp,再加上你手动传的_translate,总共就传了2个参数。但你的loadshotlist_comp方法定义只接受1个参数(也就是self),所以就抛出了这个类型错误。
两种可行的解决方案
根据你的实际需求选一种就行:
方案1:如果loadshotlist_comp需要用到_translate
修改loadshotlist_comp的方法定义,把_translate作为第二个参数加进去:
def loadshotlist_comp(self, _translate): # 在这里使用_translate做翻译相关的操作,比如: # self.some_label.setText(_translate("MainWindow", "Some Text")) pass
这样调用的时候传_translate就完全匹配参数数量了。
方案2:如果loadshotlist_comp不需要_translate
直接修改retranslateUi里的调用代码,去掉多余的参数:
# 原来的错误调用 # self.loadshotlist_comp(_translate) # 修改后的正确调用 self.loadshotlist_comp()
这样方法只接收自动传入的self,参数数量就对得上了。
额外提示
如果这个代码是Qt Designer自动生成的,那你要注意不要直接修改自动生成的代码部分(通常会有注释标记),而是去修改你自定义的loadshotlist_comp方法,或者在UI类的扩展代码里调整调用逻辑,避免后续重新生成UI代码时覆盖你的修改。
内容的提问来源于stack exchange,提问作者Jan
相关产品推荐
相关产品推荐

