PythonGUI编程:tkinter初学者入门指南——窗口

云课堂学Python 2024-09-21 20:16:33

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 = 300window_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 tkroot = 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 msgboxdef 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() # 显示窗口

0 阅读:8