网站首页 > 知识剖析 正文
Tkinter 是在 Python 中开发 GUI(图形用户界面)最常用的库。在本指南中,我们将引导您了解 Tkinter 的基本知识,学习如何使用 Tkinter 快速开发 GUI 应用程序。
创建窗口
import tkinter as tk # 导入模块
root = tk.Tk() # 创建应用程序窗口实例
root.mainloop() # 显示窗口
说明:mainloop()方法可确保主窗口在屏幕上保持可见。如果不调用该方法,主窗口将显示后立即消失。
更改窗口标题
使用 title() 方法设置窗口标题。
import tkinter as tk # 导入模块
root = tk.Tk() # 创建应用程序窗口实例
root.title("tkinter 教程") # 设置窗口标题
root.mainloop() # 显示窗口
更改窗口大小和位置
更改窗口的大小和位置,使用 geometry() 方法。
geometry(宽度x高度+x坐标+y坐标)
import tkinter as tk # 导入模块
root = tk.Tk() # 创建应用程序窗口实例
root.title("tkinter 教程") # 设置窗口标题
root.geometry('300x200+50+50') # 设置窗口大小位置
root.mainloop() # 显示窗口
以上代码运行结果如下图:
窗口在屏幕上居中
import tkinter as tk # 导入模块
root = tk.Tk() # 创建应用程序窗口实例
root.title("tkinter 教程") # 设置窗口标题
# 设置窗口尺寸
window_width = 300
window_height = 200
# 获取屏幕尺寸
screen_width = root.winfo_screenwidth()
screen_height = root.winfo_screenheight()
# 计算窗口坐标
center_x = int(screen_width/2 - window_width / 2)
center_y = int(screen_height/2 - window_height / 2)
root.geometry(f'{window_width}x{window_height}+{center_x}+{center_y}')
root.mainloop() # 显示窗口
是否允许调整窗口大小
默认情况下,可以调整窗口的宽度和高度。要防止窗口调整大小,可以使用 resizable() 方法。
root.resizable(False, False)
该方法有两个参数,用于指定是否可以调整窗口的宽度和高度。
窗口设置的其他属性
属性 说明 bg 窗口的背景颜色 bd 窗口的边框宽度(默认为2像素) cursor 鼠标指针在窗口上时的样式 relief 窗口的边框样式 iconbitmap 窗口的图标 state 窗口的状态(normal、iconic、withdrawn、oricon) overrideredirect 隐藏窗口的标题栏和边框
attributes() 方法
可以使用 attributes() 方法,设置窗口各种属性。
通过设置窗口的 Alpha 通道,范围从 0.0(完全透明)到 1.0(完全不透明)来指定窗口的透明度。
root.attributes('-alpha',0.5)
import tkinter as tk
root = tk.Tk()
root.geometry('300x200+200+200')
root.title('Label 标签演示')
root.attributes('-alpha',0.5)
root.mainloop()
通过设置窗口的 topmost 通道,决定是否置顶窗口。
root.attributes('-topmost', 1)
通过设置窗口的 fullscreen 通道,决定是否设置全屏窗口。
root.attributes('-fullscreen', 1)
protocol() 方法
使用 protocol() 方法注册并捕获窗口的某些事件。
事件 说明 WM_DELETE_WINDOW 窗口关闭事件,对应于用户点击窗口关闭按钮或调用destroy方法时触发。 WM_TAKE_FOCUS 当窗口或其子控件尝试获取输入焦点时触发。 WM_SAVE_YOURSELF 当窗口管理器要求应用程序保存其状态时触发。 WM_LOSE_FOCUS 当窗口或其子控件失去输入焦点时触发。
例如,以下代码注册了一个 WM_DELETE_WINDOW 事件,在窗口关闭时调用函数。
import tkinter as tk # 导入模块
import tkinter.messagebox as msgbox
def on_closing():
if msgbox.askokcancel("提示"," 你确定要关闭窗口吗? "):
root.destroy()
root = tk.Tk() # 创建应用程序窗口实例
root.title("tkinter 教程") # 设置窗口标题
root.geometry('300x200+50+50') # 设置窗口大小位置
root.protocol("WM_DELETE_WINDOW", on_closing)
root.mainloop() # 显示窗口
猜你喜欢
- 2024-12-10 Altium Design 快捷键
- 2024-12-10 令人眼前一亮的——鼠标指针自定义
- 2024-12-10 海峡两岸电子技术术语对照
- 2024-12-10 Python GUI 编程:tkinter 初学者入门指南——标签
- 2024-12-10 H5的Canvas绘图——使用fabricjs绘制一个可多选的随机9宫格
- 2024-12-10 练手H5 使用jquery mobile
- 2024-12-10 Python GUI 编程:tkinter 初学者入门指南——滚动条
- 2024-12-10 初识mapbox GL
- 2024-12-10 Python GUI 编程:tkinter 初学者入门指南——多行文本框
- 2024-12-10 SQL中DML、DDL和DCL命令的区别
- 最近发表
- 标签列表
-
- xml (46)
- css animation (57)
- array_slice (60)
- htmlspecialchars (54)
- position: absolute (54)
- datediff函数 (47)
- array_pop (49)
- jsmap (52)
- toggleclass (43)
- console.time (63)
- .sql (41)
- ahref (40)
- js json.parse (59)
- html复选框 (60)
- css 透明 (44)
- css 颜色 (47)
- php replace (41)
- css nth-child (48)
- min-height (40)
- xml schema (44)
- css 最后一个元素 (46)
- location.origin (44)
- table border (49)
- html tr (40)
- video controls (49)