Tkinter: избегайте новых заголовков с помощью верхнего уровня - PullRequest
1 голос
/ 25 апреля 2020

Я использую в этой программе разные уровни над моим главным окном (ровно 2). Я использую атрибуты «альфа», чтобы создать эффект гудения, когда окно появляется под новым, легче читать новое окно. С верхним уровнем это здорово, потому что даже когда у меня открыты 2 верхних уровня, на панели windows (где открыт весь список моих приложений) он отображает только заголовок главного окна моей программы (надеюсь, это понятно ^^, смотрите картинки). Но когда я уничтожаю второй верхний уровень и возвращаюсь к первому, у меня появляется другой заголовок, который появляется в строке windows в связи с первым верхним уровнем. Он появляется только тогда, когда я использую атрибуты, чтобы вернуться в «alpha» = 1 к моему первому уровню, когда я уничтожаю второй уровень. Действительно, когда я не использую атрибуты, даже когда я уничтожаю второй верхний уровень, у меня остается только одна заголовок в ссылке на главное окно.

Почему такое поведение с атрибутами функции и как избежать это?

введите описание изображения здесь enter image description here

Код моей программы:

...

from tkinter import *

def toplevel_1():
    global top_1
    fenetre.attributes("-alpha",0.25)
    top_1=Toplevel(fenetre)
    top_1.overrideredirect(1)
    top_1.grab_set()
    top_1["bg"]="black"
    button_toplevel_2=Button(top_1,text="Open TopLevel 2",command=toplevel_2)
    button_toplevel_2.pack()
    label_toplevel_1=Label(top_1,text="TopLevel 1",bg="black",fg="red",font=50)
    label_toplevel_1.pack()
    button_destroy_top_1=Button(top_1,text="Destroy TopLevel 1",command=destroy_top_1)
    button_destroy_top_1.pack()
    top_1.geometry("%dx%d+%d+%d"%(500,500,250,250))
def destroy_top_1():
    top_1.destroy()
    fenetre.attributes("-alpha",1)

def toplevel_2():
    global top_2
    top_1.attributes("-alpha",0.5)
    top_2=Toplevel(top_1)
    top_2.overrideredirect(1)
    top_2.grab_set()
    top_2["bg"]="blue"
    label_toplevel_2=Label(top_2,text="TopLevel 2",bg="blue",fg="green",font=50)
    label_toplevel_2.pack()
    button_destroy_top_2=Button(top_2,text="Destroy TopLevel 2",command=destroy_top_2)
    button_destroy_top_2.pack()
    top_2.geometry("%dx%d+%d+%d"%(250,250,500,500))
def destroy_top_2():
    top_2.destroy()
    top_1.attributes("-alpha",1)
    top_1.grab_set()

fenetre=Tk()
fenetre.title("Les Chevaliers d'Arthur")
menu=Menu(fenetre)
menu.add_command(label="Quitter",command=fenetre.destroy)
fenetre.config(menu=menu)
fenetre.geometry("%dx%d+%d+%d"%(1000,750,100,100))

button_toplevel_1=Button(fenetre,text="Open TopLevel 1",command=toplevel_1)
button_toplevel_1.pack()

fenetre.mainloop()

...

Спасибо за помощь !!!!!!

...