Как автоматически закрыть окно tkinter, если длина списка превышает определенное число? - PullRequest
0 голосов
/ 18 февраля 2019

Когда окно открыто, я продолжаю добавлять элемент в свой список.Я хочу закрыть окно tkinter автоматически, когда длина моего списка превышает определенное число, я не смог получить хорошего ответа в Интернете.

Ответы от Как закрыть окно tkinter? * В основном, 1004 *закройте окно tkinter кнопкой, что не так, как я хочу.

Я пробовал этот код, но он не работает

root = Tk()
#Some code....

#function to be called when mouse is clicked
def insertcoords(event):
    #outputting x and y coords to console
    coord.append([event.x, event.y])

#mouseclick event
canvas.bind("<Button 1>",insertcoords)

if len(coord) > 4 : #coord is my list
    root.destroy()
root.mainloop() 

1 Ответ

0 голосов
/ 18 февраля 2019

Вы должны поместить

if len(coord) > 4 :
    root.destroy()

в вашу функцию insertcoords().Проверьте следующий пример:

from tkinter import *

root = Tk()

added_elements = []

def CheckLength():
    listbox.insert(END, entry_value.get())
    added_elements.append(entry_value.get())
    if len(added_elements) > 4:
        root.destroy()

entry_value = StringVar()
entry = Entry(root, textvariable=entry_value)
entry.grid(row=0, column=0)

button = Button(root, text="Add", command=CheckLength)
button.grid(row=0, column=1)

listbox = Listbox(root)
listbox.grid(row=1, column=0, columnspan=2)

root.mainloop()

Вот обновленная версия вашего кода:

from tkinter import *

root = Tk()

coord = []

def insertcoords(event):
    coord.append([event.x, event.y])
    print(event.x, event.y)
    if len(coord) > 4:
        root.destroy()

canvas = Canvas(root)
canvas.grid(row=0, column=0)
canvas.bind("<Button 1>", insertcoords)

root.mainloop()
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...