Как не отправить сообщение об ошибке при нажатии кнопки отмены в окне «simpledialog.askstring»? - PullRequest
0 голосов
/ 19 апреля 2019

Итак, я сейчас пытаюсь создать программу, которая позволит мне вводить строку, которая выводится в текстовое окно в tkinter.Тем не менее, я получаю сообщение об ошибке при нажатии кнопки «Отмена» в окне simpledialog.askstring.

это сообщение об ошибке, которое я получаю в оболочке Python:

_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 Ответ

3 голосов
/ 19 апреля 2019

ваше диалоговое окно вернуло None, когда вы нажимаете кнопку отмены, и существует ошибка, когда вы пытаетесь вставить None в текстовый элемент управления

, поэтому замените этот код self.text.insert(END, uwu) на этот

if uwu: 
    self.text.insert(END, uwu)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...