Python:TypeError:QString.\uu getitem\uuu():参数与任何重载项都不匹配

2024-09-29 19:21:53 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在创建一个函数,它使用字典替换文本文件中的单词,即如果在文件中遇到第一个单词对,它将被第二个单词对替换。此外,当用户使用GUI中的小部件时,所创建的函数将被调用。所以创建的函数都存在于一个ui类中。(希望这有道理)。我在用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

Tags: key函数inselfui字典line单词
1条回答
网友
1楼 · 发布于 2024-09-29 19:21:53

您使用QString而不是dict初始化了dictlist

dictlist = self.lineEdit_dict.text()

当您试图以dictdictlist[key]的身份访问它时

还有许多其他问题,比如f2 = open('filename2', 'w')应该是f2 = open(filename2, 'w')

相关问题 更多 >

    热门问题