Как ограничить количество окон, которые кнопка может открыть? - PullRequest
0 голосов
/ 04 ноября 2019

Я новичок в tkinter и python в целом. Я подаю заявку и мне нужна кнопка «Настройки». Вот как я его создаю:

buttonSettings = Button(win, text=txtSettings, command=lambda: create_window(win))
buttonSettings.grid(row=1, column=4)

где:

def create_window(win):
    window = Toplevel(win)

Как бы я ограничил одним количеством окон, которое может создать эта кнопка?

Ответы [ 2 ]

0 голосов
/ 04 ноября 2019

Если вы хотите открыть определенное количество окон, подумайте о том, чтобы сохранить эти окна в списке, а затем, используя index(), вы можете вытолкнуть их из списка существующих.

См. Пример ниже идайте мне знать, если у вас есть вопросы:

import tkinter as tk


class App(tk.Tk):
    def __init__(self):
        super().__init__()
        self.geometry('200x50')
        self.top_windows = []
        tk.Button(self, text='Open window!', command=self.open_top).pack()

    def open_top(self):
        if len(self.top_windows) <= 5:
            top = tk.Toplevel(self)
            self.top_windows.append(top)
            tk.Button(self.top_windows[-1], text='exit',
                      command=lambda top=top: (self.top_windows.pop(self.top_windows.index(top)), top.destroy())).pack()

App().mainloop()
0 голосов
/ 04 ноября 2019

Попробуйте, вам нужно будет добавить window = None для инициализации вашего объекта.

window = None

def create_window(win):
    if(not window):
        window = Toplevel(win)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...