Python: TypeError: QString.__getitem__(): arguments did not match any overloaded call
Python: TypeError: QString.__getitem__(): arguments did not match any overloaded call
我正在创建一个函数,它使用字典来替换文本文件中的单词,即如果在文件中遇到第一个单词对,它将被第二个替换。此外,当用户使用 GUI 中的小部件时,将调用创建的函数。所以创建的函数都存在于uiclass中。 (希望这是有道理的)。我正在使用 python
字典看起来像这样(dictlist = {'test':'rest', 'happy':'sad', 'big':'small'} ).该函数直接在 python 编辑器中编写时工作正常,但当我将其复制到翻译后的 .ui 代码时,出现以下错误。任何人都可以建议为什么会这样。我是新手,所以希望我的解释有意义。
line = rpairs(line, dictlist)
line 1486, in rpairs
temp = temp.replace(key, dictlist[key])
TypeError: QString.__getitem__(): arguments did not match any overloaded call:
overload 1: argument 1 has unexpected type 'QString'
overload 2: argument 1 has unexpected type 'QString'
def temp(self):
import string
global filename
global mytemp
dictlist = self.lineEdit_dict.text()
filename2 = self.lineEdit_outputfilename.text()
f1 = open(filename, 'r')
f2 = open('filename2', 'w')
def rpairs (temp, dictlist):
for key in dictlist:
temp = temp.replace(key, dictlist[key])
return temp
for line in f1:
line = rpairs(line, dictlist)
f2.write(line)
f2.close()
return mytemp
你用 QString 初始化了 dictlist
而不是 dict
:
dictlist = self.lineEdit_dict.text()
当您尝试以 dict
访问它时:dictlist[key]
您还有许多其他问题,例如 f2 = open('filename2', 'w')
应该是 f2 = open(filename2, 'w')
我正在创建一个函数,它使用字典来替换文本文件中的单词,即如果在文件中遇到第一个单词对,它将被第二个替换。此外,当用户使用 GUI 中的小部件时,将调用创建的函数。所以创建的函数都存在于uiclass中。 (希望这是有道理的)。我正在使用 python
字典看起来像这样(dictlist = {'test':'rest', 'happy':'sad', 'big':'small'} ).该函数直接在 python 编辑器中编写时工作正常,但当我将其复制到翻译后的 .ui 代码时,出现以下错误。任何人都可以建议为什么会这样。我是新手,所以希望我的解释有意义。
line = rpairs(line, dictlist)
line 1486, in rpairs
temp = temp.replace(key, dictlist[key])
TypeError: QString.__getitem__(): arguments did not match any overloaded call:
overload 1: argument 1 has unexpected type 'QString'
overload 2: argument 1 has unexpected type 'QString'
def temp(self):
import string
global filename
global mytemp
dictlist = self.lineEdit_dict.text()
filename2 = self.lineEdit_outputfilename.text()
f1 = open(filename, 'r')
f2 = open('filename2', 'w')
def rpairs (temp, dictlist):
for key in dictlist:
temp = temp.replace(key, dictlist[key])
return temp
for line in f1:
line = rpairs(line, dictlist)
f2.write(line)
f2.close()
return mytemp
你用 QString 初始化了 dictlist
而不是 dict
:
dictlist = self.lineEdit_dict.text()
当您尝试以 dict
访问它时:dictlist[key]
您还有许多其他问题,例如 f2 = open('filename2', 'w')
应该是 f2 = open(filename2, 'w')