在“ simpledialog.askstring”窗口中单击取消按钮时,如何不发送错误消息?

时间:2019-04-18 23:26:04

标签: python python-3.x tkinter

因此,我目前正在尝试制作一个程序,该程序允许我输入一个输出到tkinter中文本窗口的字符串。但是,当在simpledialog.askstring窗口中按下“取消”按钮时,我收到一条错误消息。

这是我在Python Shell中收到的错误消息:

_tkinter.TclError: wrong # args: should be ".!text insert index chars ?tagList chars tagList ...?"

我只是希望程序在按下取消按钮时不执行任何操作。 :(

from tkinter import *
from tkinter import simpledialog
import tkinter.messagebox

class Thing:
    def __init__(self):
        global buttonThing
        global window
        window = Tk()

        frame1 = Frame(window)
        frame1.pack()
        buttonThing = Button(frame1, text = "click me", command = self.clickMe)
        buttonThing.pack()
        self.text =Text(window)
        self.text.pack()
        window.mainloop()


    def clickMe(self):
        uwu = simpledialog.askstring("hey","put stuff")

        self.text.insert(END, uwu)



Thing()

1 个答案:

答案 0 :(得分:2)

当您按“取消”时,您的对话框返回“无”,并且当您尝试在文本控件中插入“无”时,该错误存在。

因此将此代码self.text.insert(END, uwu)替换为

if uwu: 
    self.text.insert(END, uwu)