Masquer les bouton Minimiser Maximiser et Fermer
Le
Mickael
Bonjour à tous,
J'ai créé une fenêtre à partir de l'API Tkinter et je souhaiterais masquer
les boutons Minimiser Maximiser et Fermer situés au haut à droite. Le code
que j'utilise pour créer ma fenêtre est le suivant :
root = Tk()
root.title("Test")
bouton = Button(root, text="Quitter", command=root.destroy)
bouton.pack()
root.mainloop()
Si vous avez une idée sur la façon de procéder, je suis preneur !
Merci d'avance.
--
Mickael
J'ai créé une fenêtre à partir de l'API Tkinter et je souhaiterais masquer
les boutons Minimiser Maximiser et Fermer situés au haut à droite. Le code
que j'utilise pour créer ma fenêtre est le suivant :
root = Tk()
root.title("Test")
bouton = Button(root, text="Quitter", command=root.destroy)
bouton.pack()
root.mainloop()
Si vous avez une idée sur la façon de procéder, je suis preneur !
Merci d'avance.
--
Mickael

Poser une question


Tu ne peux pas enlever seulement ces boutons, mais tu peux enlever
toute la barre du haut en ajoutant
root.overrideredirect(1)
avant le mainloop(). Ensuite tu peux te refaire une barre de titre
perso avec un Canvas
Cordialement,
Pierre
Je viens d'essayer cette instruction mais c'est assez violent ! La barre de
titre disparait mais la bordure de la fenêtre également. De plus, je ne suis
plus en mesure de déplacer ma fenêtre.
Je débute en python et la classe Canvas m'est peu familière. Permet-elle de
redonner ces fonctionnalités à mon application ?
Mickael.
"Pierre Quentel" news:
from Tkinter import *
class CustomWindow:
def __init__(self,title=''):
self.root = root = Tk()
c = Canvas(root,bg="red",height ,width 0)
c.create_text(20,10,text=title)
c.bind(" c.bind(" c.pack()
bouton = Button(root, text="Quitter", command=root.destroy)
bouton.pack()
root.overrideredirect(1)
def move(self,event):
x,y=self.x+event.x_root-self.mx,self.y+event.y_root-self.my
self.root.geometry("%dx%d%+d%+d" % (self.root.winfo_reqwidth(),
self.root.winfo_reqheight(),x,y))
def set_mouse(self,event):
self.x=self.root.winfo_rootx()
self.y=self.root.winfo_rooty()
self.mx=event.x_root
self.my=event.y_root
c = CustomWindow('essai')
c.root.mainloop()
et l'adapter en fonction de tes besoins. Pour comprendre les méthodes
utilisées (le glisser-déposer notamment), tu peux te référer à
l'excellent "An introduction to Tkinter" disponible en ligne ou en
téléchargement PDF
Cordialement,
Pierre
(merci de répondre en dessous du message d'origine, sinon c'est difficile
à lire - corrigé)
C'est à ça que sert overrideredirect: la fenêtre n'est plus gérée par le
window manager (où ce qui en tient lieu).
Non. C'est un conteneur "de base", sans fonctionnalité particulière.
Quant à ta question d'origine, il serait utile de savoir ce que tu veux
faire exactement. Il est assez inhabituel de vouloir une fenêtre sans
bouton, mais qu'on peut quand même déplacer.
Il existe toutefois un moyen de désactiver le bouton de maximisation en
faisant:
wdw.wm_resizable(0, 0)
Mais (sous Windows) ça le désactive seulement; ça ne l'enlève pas. Et les
boutons de minimisation et de fermeture sont toujours présents et actifs.
Pour rendre le bouton de fermeture inopérant, on peut aussi faire un:
wdw.protocol('WM_DELETE_WINDOW', lambda: None)
mais ça le laisse affiché et apparemment actif (même si cliquer dessus ne
fait plus rien).
Mais la question de fond reste: pourquoi veux-tu faire ça?
HTH quand même...
--
python -c "print ''.join([chr(154 - ord(c)) for c in
'U(17zX(%,5.zmz5(17l8(%,5.Z*(93-965$l7+-'])"
dialogue. J'ai créé un bouton "VALIDER" qui me permet de vérifier et
d'enregistrer des données dans un fichier. La présence du bouton "Fermer"
permet à l'utilisateur de quitter la boite de dialogue en contournant
l'étape de création du fichier, et cela je souhaite l'éviter.
En ce qui concerne les boutons "minimiser" et "maximiser", ils ne me servent
pas donc je voulais les faire sauter par la même occasion. En voyant une
tkMessageBox, j'ai cru que c'était faisable facilement...
En tout cas, les solutions que vous me proposez me conviennent parfaitement.
Soit je rend le bouton de fermeture inopérant.
Soit je passe par un canvas en m'inspirant du code fourni par Pierre.
Merci à tous les deux.
Mickael.
"Eric Brunel"