tkinter——Python GUI设计——主窗口

主窗口

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

效果如下:

其他功能函数不再演示,有需要的可以自行尝试~

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章