主窗口
GUI設計的所有部件均在主窗口上顯示,因此在創建各部件之前需要先創建主窗口。在此需要使用的函數爲:
class Tkinter.Tk(screenName=None, baseName=None, className='Tk', useTk=1)
該函數將Tkinter.Tk
類實例化,通常使用時不用帶參數,該語句創建窗口通常作爲應用程序的主窗口。
例如:
#!/usr/bin/env python
# -*- coding: utf-8 -*-
import tkinter as tk # 使用Tkinter前需要先導入
# 第1步,實例化object,建立窗口window
window = tk.Tk()
# 第2步,給窗口的可視化起名字
window.title('My Window')
# 第3步,設定窗口的大小(長 * 寬)
window.geometry('500x300') # 這裏的乘是小x
# 第4步,主窗口循環顯示
window.mainloop()
Tkinter.Tk
類實例化爲window
後,可以通過指定的函數對窗口的屬性進行修改:
函數 | 含義 |
---|---|
window.title(‘My Window’) | 修改框體的名字。也可在創建Tkinter.Tk類時,使用className參數來命名 |
window.resizable(0,0) | 框體大小可調性,分別表示x,y方向的可變性 |
window.geometry(‘250x150’) | 指定主框體大小 |
window.quit() | 退出 |
window.update_idletasks() | |
window.update() | 刷新頁面(界面顯示一次後直接退出結束程序) |
window.mainloop() | 窗口循環顯示(一直循環顯示,直到窗口被關閉) |
window.iconbitmap(“classic.ico”) | |
window.config(background = “pink”) | |
window.resizable(False,False) | 窗口的高度和寬度是否可變 |
window.minsize(100,100) | 窗口的最小縮放 |
window.maxsize(600,333) | 窗口最大縮放 |
window.overrideredirect(True) | |
window.attributes("-alpha",0.9) | 設置窗口的透明度,1爲不透明,0爲完全透明 |
window.protocol(“WM_DELETE_WINDOW”,call) | 查看資料ICCCM |
window.protocol(“WM_TAKE_FOCUS”,call) | |
window.attributes("-toolwindow",1) | 設置爲toolwindow/topmost模式 |
window.state(“zoomed”) | 啓動窗口最大化 |
window.withdraw() | 窗口隱藏,取消用deiconify()方法 |
window.iconify() | 窗口最小化 |
window.deiconify() | 還原窗口 |
window.attributes("-fullscreen",1) | 坑爹的全屏呀,到底有多坑,試試你才知道!!! 友情提示:Alt+Tab可以切換到其他應用後關閉 |
window.winfo_screenwidth() window.winfo_screenheight() |
獲得屏幕分辨率 |
window.frame() | 返回X窗口的標示符或者是當前窗口的句柄 |
window.grid(baseWidth =100,baseHeight =100, widthInc =4,heightInc=4) |
basewidth和baseheight指定Tk_geometryrequest要求的網格單元數 widthInc和heightIn指定網格單元的寬度和高度(像素)’’’ |
window.group() | 將窗口添加到窗口羣中,括號內的參數爲窗口的路徑,用來指定主窗口 |
window.state(“iconic”) | 括號裏面的參數還可以是"withdrawn"(隱藏窗口,運行後看不到窗口且任務欄也沒有提醒,慎用),“icon”(最小化窗口,運行後窗口直接縮小到任務欄) |
window.iconwindow() |
參照上表,將透明度設置爲0.1,效果如下
圖中右邊虛影爲主題框。window.protocol(“WM_DELETE_WINDOW”,call)用法如下,在使用時需要定於一個回調函數“call”,當用戶關閉界面點擊“關閉”時,系統會自動調用“call”函數,且此時界面不會被關閉。
#!/usr/bin/env python
# -*- coding: utf-8 -*-
import tkinter as tk # 使用Tkinter前需要先導入
# 第1步,實例化object,建立窗口window
window = tk.Tk()
# 第2步,給窗口的可視化起名字
window.title('My Window')
# 第3步,設定窗口的大小(長 * 寬)
window.geometry('500x300') # 這裏的乘是小x
def call():
print("call")
window.protocol("WM_DELETE_WINDOW",call)
# 第4步,主窗口循環顯示
window.mainloop()
效果如下:
其他功能函數不再演示,有需要的可以自行嘗試~