将数值传递给Tkin中的scrolledtext小部件

2024-04-23 20:57:47 发布

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

Tkinter回调异常 回溯(最近一次呼叫):

File "C:\Users\USER1\AppData\Local\Programs\Python\Python37\lib\tkinter\__init__.py", line 1702, in __call__
    return self.func(*args)
  File "C:/Users/USER1/AppData/Local/Programs/Python/Python37/newWidget.py", line 54, in clickedEvaluate
    txt.insert(END,s[i] +">>>>>>>>>" + Dicesim + "\n")
TypeError: can only concatenate str (not "StringVar") to str

上面的文本显示错误消息

Dicesim=StringVar()


def clickedEvaluate():
    if txt1.get()=='':    
        messagebox.showerror('Empty entry', 'You have not entered the required first text for comparison')
        txt1.focus()

    else:
        combo = Combobox(window)
        combo['values']= ('Dice', 'Bigram', 'Trigram', 'Set-Based','NS-Sim')
        combo.current(0) #set the selected item
        combo.grid(column=0, row=4)

        file=open('db_word.txt','r')
        s=file.readlines()

        txt = ScrolledText(window,width='50',height='10',wrap=WORD)
        txt.grid(column=1,row=6)
        #txt.pack()
        if combo.get()=='Dice':
            for i in range(20):
                Dicesim.set(dice(txt1.get(),s[i]))
                txt.insert(END,s[i] +">>>>>>>>>" + Dicesim + "\n")
                txt.yview(END)

预期结果是显示 's[i]+“>;>;>;>;>;>;>;”+Dicesim+“\n”'。这在执行dice()的行中,在txt.insert方法中不识别StringVarDicesim。你知道吗


Tags: ingttxtgetlocalusersappdatafile