web-dev-qa-db-fra.com

Changer le titre du cadre Tkinter

J'essaie de comprendre comment changer le titre d'un cadre Tkinter. Ci-dessous, un code simplifié qui imite la partie de mon programme où je tente de changer le titre:

from Tkinter import *

class start_window(Frame):
    def __init__(self, parent=None):
        Frame.__init__(self, parent)
        Frame.pack(self)
        Label(self, text = 'Test', width=30).pack()

if __== '__main__':
    start_window().mainloop()

Avec cet exemple de code, Frame a le titre standard "tk", mais j'aimerais le remplacer par quelque chose comme "Ma base de données". J'ai essayé tout ce que je peux penser sans succès. Toute aide serait appréciée. 

12
user3798654

Essaye ça:

if __== '__main__':
    root = Tk()
    root.title("My Database")
    root.geometry("500x400")
    app = start_window(root)
    root.mainloop()
23
letsc

Tout d'abord, vous devriez créer explicitement la fenêtre principale en créant une instance de Tk. Lorsque vous le faites, vous pouvez utiliser la référence à cette fenêtre pour modifier le titre.

Je recommande également not en utilisant une importation globale. Au lieu de cela, importez tkinter par nom et préfixez vos commandes tkinter avec le nom du module. J'utilise le nom tk pour réduire la dactylographie:

import Tkinter as tk

class start_window(tk.Frame):
    def __init__(self, parent=None):
        tk.Frame.__init__(self, parent)
        tk.Frame.pack(self)
        tk.Label(self, text = 'Test', width=30).pack()

if __== '__main__':
    root = tk.Tk()
    root.wm_title("This is my title")
    start_window(root)
    root.mainloop()

Enfin, pour rendre votre code plus facile à lire, je suggère de donner à votre nom de classe une première lettre majuscule pour être cohérent avec presque tous les programmeurs python du monde entier:

class StartWindow(...):

En utilisant les mêmes conventions que tout le monde, cela nous permet de comprendre votre code plus facilement.

Pour plus d'informations sur les conventions de dénomination utilisées par la communauté tkinter, voir PEP8

1
Bryan Oakley

Je commence généralement mes applications tkinter avec 

#!/usr/local/bin/python3

import Tkinter as tk

root = Tk() 

root.title('The name of my app')

root.minsize(300,300)
root.geometry("800x800")

root.mainloop()
0
Athina