2015-11-10 220 views
10

我想弄清楚如何更改Tkinter框架的標題。下面是模仿我在哪裏試圖改變標題我的程序的一部分簡化代碼:更改Tkinter框架標題

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

有了這個示例代碼框架具有標準的「傳統知識」的稱號,但我想將其更改爲類似「我的數據庫」。我嘗試了所有我能想到但沒有成功的事情。任何幫助,將不勝感激。

回答

18

試試這個:

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

大家好,我Tkinter的應用程序,非常感謝你。這工作完美。我非常感謝你的幫助。 – user3798654

1

首先,你應該通過創建Tk實例明確創建主窗口。當你這樣做時,你可以使用對這個窗口的引用來改變標題。

我也推薦使用而不是使用全局導入。相反,按名稱導入tkinter,並在模塊名稱前加tkinter命令。我使用的名稱tk以減少打字:

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

最後,爲了使你的代碼更容易閱讀,我建議給你的類名的首字母大寫,以與幾乎所有的Python程序員到處是一致的:

class StartWindow(...): 

通過使用與其他人相同的約定,它使我們更容易理解您的代碼。

有關命名由Tkinter的社區使用約定的詳細信息,請參閱PEP8

+0

嗨,非常感謝您的回覆。不幸的是,這並不適合我。在做出建議的修改後,我最終得到了兩個小部件窗口,一個看起來像我的原始小部件,另一個是空白的,但具有所需的標題。然而,下一個答案確實解決了我的問題。謝謝我真的很感謝你的幫助。 – user3798654

+0

如果您在調用'tk.Tk()'之前創建了一些小部件,那麼最終會出現兩個窗口。在創建任何其他小部件之前,您應該明確創建根窗口。 –

0

我一般先從

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