Как сделать так, чтобы messagebox не показывалась только после нажатия ОК
Я сделал скрипт, который должен был при нажатии кнопки показывать куча ошибок.
Вот он:
from tkinter import *
import tkinter.messagebox
from time import sleep
app = Tk()
app.geometry("500x500")
def showerrors():
for i in range(1,10):
sleep(0.5)
tkinter.messagebox.showerror("еррор", "ошибка")
b = Button(app, text="нажми на меня!", command=showerrors)
b.pack()
app.mainloop()
но когда появляется ошибка, следующая ошибка появляется только когда я нажму ОК на текущей.
Можно ли это убрать? или нельзя?
Ответы (2 шт):
Автор решения: S. Nick
→ Ссылка
Попробуйте так:
from tkinter import *
import tkinter.messagebox
from time import sleep
app = Tk()
app.geometry("500x500")
def showerrors():
error = ''
for i in range(1, 10):
# ??? sleep(0.5)
error = f"{error}\nошибка: {i}"
tkinter.messagebox.showerror("Errоr", f"У Вас возникли следующие ОШИБКИ: \n{error}")
b = Button(app, text="Нажми на меня!", command=showerrors)
b.pack()
app.mainloop()
Автор решения: Alex Titov
→ Ссылка
Стандартный messagebox создает модальное окно, оно поверх всего, пока не закроешь, дальше не движемся. Можно создать немодальное, но там уже кнопку ОК надо самому "нарисовать". Вот про немодальные окна https://translated.turbopages.org/proxy_u/en-ru.ru.0125fa90-63153091-090a69b1-74722d776562/https/stackoverflow.com/questions/56987557/creating-a-modeless-window-using-tkinter
