web-dev-qa-db-ger.com

Tkinter-Frame-Titel ändern

Ich versuche herauszufinden, wie man den Titel eines Tkinter-Frames ändert. Nachfolgend finden Sie vereinfachten Code, der den Teil meines Programms nachahmt, in dem ich versuche, den Titel zu ändern:

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()

Mit diesem Beispielcode hat der Frame den Standardtitel "tk", aber ich möchte ihn in etwas wie "Meine Datenbank" ändern. Ich habe alles versucht, woran ich denken kann, ohne Erfolg. Jede Hilfe wäre dankbar. 

12
user3798654

Versuche dies:

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

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

Ich empfehle auch not mit einem globalen Import. Importieren Sie stattdessen tkinter nach Namen, und stellen Sie den tkinter-Befehlen den Modulnamen voran. Ich verwende den Namen tk, um die Eingabe zu reduzieren:

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()

Um Ihren Code lesbarer zu machen, schlage ich vor, Ihrem Klassennamen einen Großbuchstaben zu geben, damit er mit fast allen Python-Programmierern überall gleich ist:

class StartWindow(...):

Durch die Verwendung der gleichen Konventionen wie bei allen anderen wird es uns leichter, Ihren Code zu verstehen.

Weitere Informationen zu Namenskonventionen der tkinter-Community finden Sie unter PEP8

1
Bryan Oakley

Ich starte meine Tkinter Apps generell 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()
0
Athina