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

Suppression des boutons de réduction/maximisation dans Tkinter

En général, les décorations que le WM (gestionnaire de fenêtres) décide d'afficher ne peuvent pas être facilement dictées par une boîte à outils comme Tkinter. Alors permettez-moi de résumer ce que je sais et ce que j'ai trouvé :

import Tkinter as tk

root= tk.Tk()

root.title("wm min/max")

# this removes the maximize button
root.resizable(0,0)

# # if on MS Windows, this might do the trick,
# # but I wouldn't know:
# root.attributes(toolwindow=1)

# # for no window manager decorations at all:
# root.overrideredirect(1)
# # useful for something like a splash screen

root.mainloop()

Il est également possible que, pour un Toplevel fenêtre autre que la racine, vous pouvez faire :

toplevel.transient(1)

et cela supprimera les boutons min/max, mais cela dépend aussi du gestionnaire de fenêtres. D'après ce que j'ai lu, MS Windows WM les supprime.


from tkinter import  *

qw=Tk()
qw.resizable(0,0)      #will disable max/min tab of window
qw.mainloop()

from tkinter import  *

qw=Tk()
qw.overrideredirect(1) # will remove the top badge of window
qw.mainloop()

voici les deux façons de désactiver l'option maximiser et minimiser dans tkinter

rappelez-vous que le code du bouton affiché dans l'image n'est pas dans l'exemple car il s'agit d'une solution concernant la façon de rendre l'onglet max/min non fonctionnel ou comment supprimer


Windows

Pour Windows, vous pouvez utiliser l'attribut -toolwindow comme ceci :

root.attributes('-toolwindow', True)

Donc si vous voulez du code complet, c'est ça

from tkinter import *

from tkinter import ttk

root = Tk()

root.attributes('-toolwindow', True)

root.mainloop()

Autres attributs window.attributes :

-alpha
-transparentcolor
-disabled
-fullscreen
-toolwindow
-topmost

Remarque importante cela ne fonctionne qu'avec Windows. Pas MacOS

Mac

Avec mac, vous pouvez utiliser l'attribut overredirect et un bouton "x" pour fermer la fenêtre et cela fera l'affaire. :D comme ça :

from tkinter import *

from tkinter import ttk

window = Tk()

window.overredirect(True)

Button(window, text="x", command=window.destroy).pack()

window.mainloop()

Inspiré de https://www.delftstack.com/howto/python-tkinter/how-to-create-full-screen-window-in-tkinter/

Pour moi, ça marche, j'ai un windows 7.

Commentez-moi si j'ai une erreur.