2015-11-10 9 views
10

Ich versuche herauszufinden, wie Sie den Titel eines Tkinter Frame ändern. Im Folgenden finden Sie vereinfachte Code, der den Teil meines Programms nachahmt, wo ich den Titel zu ändern versuche:Ändern Tkinter Frame Titel

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 __name__ == '__main__': 
    start_window().mainloop() 

Mit diesem Beispielcode der Rahmen den Standard „tk“ Titel hat, aber ich möchte es wie etwas ändern "Meine Datenbank" Ich habe alles versucht, was mir nicht gelungen ist. Jede Hilfe wäre willkommen.

Antwort

18

Try this:

if __name__ == '__main__': 
    root = Tk() 
    root.title("My Database") 
    root.geometry("500x400") 
    app = start_window(root) 
    root.mainloop() 
+1

Hallo beginnen, Vielen Dank. Das hat perfekt funktioniert. Ich schätze deine Hilfe sehr. – user3798654

1

Zunächst sollten Sie explizit das Hauptfenster zu schaffen sein, indem eine Instanz von Tk zu schaffen. Wenn Sie dies tun, können Sie den Verweis auf dieses Fenster verwenden, um den Titel zu ändern.

Ich empfehle auch nicht mit einem globalen Import. Importieren Sie stattdessen tkinter nach Name und fügen Sie Ihren tkinter-Befehlen den Modulnamen voran. Ich den Namen verwende tk zur Senkung der Typisierung:

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 __name__ == '__main__': 
    root = tk.Tk() 
    root.wm_title("This is my title") 
    start_window(root) 
    root.mainloop() 

Schließlich Ihren Code leichter lesen Ich schlage vor, Ihre Klassennamen einen Groß ersten Brief an seine im Einklang mit fast allen Python-Programmierern gibt überall:

class StartWindow(...): 

Indem Sie die gleichen Konventionen wie alle anderen verwenden, wird es für uns einfacher, Ihren Code zu verstehen.

Weitere Informationen über die Konventionen der tkinter Gemeinschaft verwendet Namensgebung finden PEP8

+0

Hallo, vielen Dank für Ihre Antwort. Leider hat das bei mir nicht funktioniert. Nachdem ich die vorgeschlagenen Änderungen vorgenommen habe, habe ich zwei Widget-Fenster, eines, das meinem ursprünglichen Widget ähnelt, und ein zweites, das leer ist, aber den gewünschten Titel hat. Aber die nächste Antwort hat mein Problem gelöst. Danke, ich schätze deine Hilfe sehr. – user3798654

+0

Sie werden mit zwei Fenstern enden, wenn Sie einige Widgets erstellen, bevor Sie 'tk.Tk()' aufrufen. Sie sollten das Stammfenster explizit erstellen, bevor Sie andere Widgets erstellen. –

0

ich meine tkinter apps im Allgemeinen mit

#!/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()