Tk 是 tkinter 中最基础的窗口组件,用于创建主应用程序窗口,是所有其他组件的容器。
要创建 Tk 窗口很简单,在导入 tkinter 后,调用 Tk 方法就可以了。
import tkinter as tk
# 创建主窗口实例
root = tk.Tk()
我们可以把窗口实例赋值给一个变量(如上面的 root ),这样就可以对该窗口进行各种配置了。
但这时我们运行,程序是没动静的。因为 tk 窗口创建后一闪而过就关闭了,需要调用 mainloop() 方法,让窗口一直显示。
# 保持窗口显示
root.mainloop()
常用的窗口设置比如:
- 设置窗口标题:用 title() 方法,如 root.title("自定义标题") 。
- 设置窗口大小和位置:用 geometry() 方法,格式为 “宽x高” 或 “宽x高+X坐标+Y坐标” ,例如 geometry("600x300") 。注意宽和高中间是小写字母 x ,否则会出错。
- 禁止调整窗口大小:用 resizable() 方法,参数为 0 或 False 禁止调整,如 resizable(0, 0) (两个参数分别控制宽度和高度)。
- 限制最大/最小尺寸:用 maxsize() 或 minsize() 方法,如 maxsize(800, 500) 。
Tk 窗口还有个很重要的方法 attributes() ,可以用来获取或设置窗口的底层属性,调整视觉效果和行为特性等。
常用属性及示例:
- '-alpha' :设置透明度,值范围 0.0 (完全透明)到 1.0 (完全不透明),如 root.attributes('-alpha', 0.7) 。
- '-topmost' :值为 1 时窗口顶置,如 root.attributes('-topmost', 1) 。
- '-disabled' :值为 1 时窗口不可交互,用户无法点击或输入。
- '-toolwindow' :值为 1 时窗口变为工具样式(无最大化、最小化按钮)。
- '-zoomed' :值为 1 时窗口最大化。
- '-fullscreen' :值为 1 时全屏显示,值为 0 时退出全屏。
整体代码如下:
import tkinter as tk
# 创建主窗口实例
root = tk.Tk()
# 对窗口进行配置(以设置标题为例)
root.title("我的第一个Tk窗口")
# 设置窗口大小和位置(宽x高+X坐标+Y坐标)
root.geometry("600x300+100+100") # 宽600px,高300px,左上角距屏幕左边缘100px、上边缘100px
# 禁止调整窗口大小(宽度和高度均禁止)
root.resizable(0, 0)
# 限制窗口最大尺寸
root.maxsize(800, 500)
# 设置窗口透明度为0.7(完全透明为0.0,完全不透明为1.0)
root.attributes('-alpha', 0.7)
# 设置窗口顶置(始终在其他窗口上方)
root.attributes('-topmost', 1)
# 保持窗口显示
root.mainloop()
另外需要注意:在同一个程序里,不应该使用多个 Tk 窗口。因为多个 mainloop() 会争夺事件处理权,导致窗口卡顿、资源重复加载或程序崩溃。正确做法是用一个 Tk 作为主窗口,子窗口用 Toplevel 实现(后续视频会详细介绍)。有疑问可以在评论区留言探讨~
