主窗口
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()
效果如下:
其他功能函数不再演示,有需要的可以自行尝试~