当你希望用Python创建一个有按钮、输入框的软件窗口时,是否觉得这需要复杂的图形库? 其实Python自带了一个简单强大的工具。
Tkinter用于制作程序GUI界面的pthon官方内置库
Tkinter优点:简单、易上手、跨平台Windows、macOS和Linux多种操作系统上运行
Tkinter缺点:基础功能、界面不太好看
GUI除了Tkinter还有wxPython、PyQT等GUI三方库,比Tkinter复杂,建议先学Tk,再学其他
官方技术文档:
https://docs.python.org/zh-cn/3/library/tk.html
# 创建窗口# 开启窗口/主循环#设置窗口标题import tkinter as tk# 创建窗口a1 = tk.Tk()# 设置窗口标题a1.title('我的游戏')# 开启窗口/主循环a1.mainloop()
执行结果:
(2)设置窗口大小、设置窗口打开位置、获取用户分辨率
# 设置窗口大小# 设置窗口打开位置# 获取用户分辨率import tkinter as tk# 创建窗口a1 = tk.Tk()# 设置窗口标题a1.title('我的游戏')# 获取用户分辨率a2 = a1.maxsize()k, g = a2# 设置窗口大小# 设置窗口打开位置a1.geometry(f'{int(k*0.5)}x{int(g*0.5)}+{int(k*0.1)}+{int(g*0.1)}')# a1.geometry('宽x高+距离屏幕左侧多少+距离屏幕上方多少')# 开启窗口/主循环a1.mainloop()
# 设置窗口锁定缩放# 设置窗口图标import tkinter as tk# 创建窗口a1 = tk.Tk()# 设置窗口标题a1.title('我的游戏')# 获取用户分辨率a2 = a1.maxsize()k, g = a2# 设置窗口大小# 设置窗口打开位置a1.geometry(f'{int(k*0.5)}x{int(g*0.5)}+{int(k*0.1)}+{int(g*0.1)}')# a1.geometry('宽x高+距离屏幕左侧多少+距离屏幕上方多少')# 设置窗口锁定缩放a1.resizable(width=True, height=False) # 默认True,可缩放# 设置窗口图标a1.iconbitmap('logo1.ico') # 可以传相对路径和绝对路径,建议相对路径# 开启窗口/主循环a1.mainloop()
# 设置窗口背景颜色# 设置窗口透明度# https://tools.jb51.net/static/colorpicker/ 颜色表import tkinter as tk# 创建窗口a1 = tk.Tk()# 设置窗口标题a1.title('我的游戏')# 获取用户分辨率a2 = a1.maxsize()k, g = a2# 设置窗口大小# 设置窗口打开位置a1.geometry(f'{int(k*0.5)}x{int(g*0.5)}+{int(k*0.1)}+{int(g*0.1)}')# a1.geometry('宽x高+距离屏幕左侧多少+距离屏幕上方多少')# 设置窗口锁定缩放a1.resizable(width=True, height=True) # 默认True,可缩放# 设置窗口图标a1.iconbitmap('logo1.ico') # 可以传相对路径和绝对路径,建议相对路径# 设置窗口背景颜色 # 可以写颜色英文和颜色编码a1.configure(bg='#9999ff')# 设置窗口透明度 # 第一个位置传参,字符串'-alpha',后面是数字 0-1 之间a1.attributes('-alpha', 1)# 开启窗口/主循环a1.mainloop()
(5)设置窗口置顶、设置窗口关闭时执行的函数 WM_DELETE_WINDOW、销毁窗口\组件
# 设置窗口置顶# 设置窗口关闭时执行的函数 WM_DELETE_WINDOW# 销毁窗口\组件import tkinter as tk# 创建窗口a1 = tk.Tk()# 设置窗口标题a1.title('我的游戏')# 获取用户分辨率a2 = a1.maxsize()k, g = a2# 设置窗口大小# 设置窗口打开位置a1.geometry(f'{int(k*0.5)}x{int(g*0.5)}+{int(k*0.1)}+{int(g*0.1)}')# a1.geometry('宽x高+距离屏幕左侧多少+距离屏幕上方多少')# 设置窗口锁定缩放a1.resizable(width=True, height=True) # 默认True,可缩放# 设置窗口图标a1.iconbitmap('logo1.ico') # 可以传相对路径和绝对路径,建议相对路径# 设置窗口背景颜色 # 可以写颜色英文和颜色编码a1.configure(bg='#9999ff')# 设置窗口透明度 # 第一个位置传参,字符串'-alpha',后面是数字 0-1 之间a1.attributes('-alpha', 1)# 设置窗口置顶a1.attributes('-topmost', True)def guan(): print('关闭窗口执行函数') # 销毁窗口 a1.destroy()# 设置窗口关闭时执行的函数 WM_DELETE_WINDOWa1.protocol('WM_DELETE_WINDOW', guan)# 开启窗口/主循环a1.mainloop()