网站首页 > 技术文章 正文
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 实现(后续视频会详细介绍)。有疑问可以在评论区留言探讨~
- 上一篇: 一起学python:Tkinter——轻装上阵,快速入门
- 下一篇:已经是最后一篇了
猜你喜欢
- 2025-07-23 一起学python:Tkinter——轻装上阵,快速入门
- 2025-07-23 Python GUI 编程:tkinter 初学者入门指南——窗格窗口
- 2025-07-23 Python GUI 编程:tkinter 初学者入门指南——Ttk 小部件
- 2025-07-23 Python,Tkinter的基础使用(python3 tkinter)
- 2025-07-23 图文并茂:Python Tkinter从入门到高级实战全解析
- 2025-07-23 python tkinter桌面应用gui库基础介绍
- 2025-07-23 Python tkinter写个画图板,一个坑和实用知识解析
- 2025-07-23 python tkinter组件概述(python的tkinter模块详解)
- 283℃Python短文,Python中的嵌套条件语句(六)
- 279℃PythonNet:实现Python与.Net代码相互调用!
- 279℃python笔记:for循环嵌套。end=""的作用,图形打印
- 274℃Python实现字符串小写转大写并写入文件
- 273℃Python操作Sqlserver数据库(多库同时异步执行:增删改查)
- 133℃原来2025是完美的平方年,一起探索六种平方的算吧
- 118℃Ollama v0.4.5-v0.4.7 更新集合:Ollama Python 库改进、新模型支持
- 111℃Python 和 JavaScript 终于联姻了!PythonMonkey 要火?
- 最近发表
-
- python tkinter tk窗口组件的基础用法介绍
- 一起学python:Tkinter——轻装上阵,快速入门
- Python GUI 编程:tkinter 初学者入门指南——窗格窗口
- Python GUI 编程:tkinter 初学者入门指南——Ttk 小部件
- Python,Tkinter的基础使用(python3 tkinter)
- 图文并茂:Python Tkinter从入门到高级实战全解析
- python tkinter桌面应用gui库基础介绍
- Python tkinter写个画图板,一个坑和实用知识解析
- python tkinter组件概述(python的tkinter模块详解)
- Flask中使用Blinker实现信号传递(flask传数据给前端)
- 标签列表
-
- python中类 (31)
- python 迭代 (34)
- python 小写 (35)
- python怎么输出 (33)
- python 日志 (35)
- python语音 (31)
- python 工程师 (34)
- python3 安装 (31)
- python音乐 (31)
- 安卓 python (32)
- python 小游戏 (32)
- python 安卓 (31)
- python聚类 (34)
- python向量 (31)
- python大全 (31)
- python次方 (33)
- python桌面 (32)
- python总结 (34)
- python浏览器 (32)
- python 请求 (32)
- python 前端 (32)
- python验证码 (33)
- python 题目 (32)
- python 文件写 (33)
- python中的用法 (32)