Python >> Tutoriel Python >  >> Python GUI >> Tkinter GUI

Comment faire sauter une fenêtre Tkinter vers l'avant ?

En supposant que vous parliez de vos fenêtres d'application lorsque vous dites "mes autres fenêtres", vous pouvez utiliser le lift() méthode sur un Toplevel ou Tk :

root.lift()

Si vous souhaitez que la fenêtre reste au-dessus de toutes les autres fenêtres, utilisez :

root.attributes("-topmost", True)

root est votre Toplevel ou Tk. N'oubliez pas le - devant "topmost" !

Pour le rendre temporaire , désactivez le plus haut juste après :

def raise_above_all(window):
    window.attributes('-topmost', 1)
    window.attributes('-topmost', 0)

Passez simplement dans la fenêtre que vous souhaitez utiliser comme argument, et cela devrait fonctionner.


Ajoutez les lignes suivantes avant mainloop() :

root.lift()
root.attributes('-topmost',True)
root.after_idle(root.attributes,'-topmost',False)

Cela fonctionne parfaitement pour moi. Il fait venir la fenêtre au premier plan lorsque la fenêtre est générée, et il ne la gardera pas toujours au premier plan.


Si vous faites cela sur un Mac, utilisez AppleEvents pour donner le focus à Python. Ex :

import os

os.system('''/usr/bin/osascript -e 'tell app "Finder" to set frontmost of process "Python" to true' ''')