百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 技术资源 > 正文

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

off999 2024-12-08 17:32 17 浏览 0 评论

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() # 显示窗口

相关推荐

独家 | 5 个Python高级特性让你在不知不觉中成为Python高手

你已经使用Python编程了一段时间,编写脚本并解决各种问题。是你的水平出色吗?你可能只是在不知不觉中利用了Python的高级特性。从闭包(closure)到上下文管理器(contextmana...

Python装饰器

Python装饰器是一种用于修改函数或类的行为的特殊语法。它们允许在不修改原始代码的情况下,通过将函数或类作为参数传递给另一个函数来添加额外的功能。装饰器本质上是一个函数,它接受一个函数作为参数,并返...

中高阶Python常规用法--上下文管理器

Python以简单性和通用性著称,是一种深受全球开发人员喜爱的编程语言。它提供了大量的特性和功能,使编码成为一种愉快的体验。在这些功能中,一个经常被新手忽视的强大工具是上下文管理器。上下文管理器是高...

Python小案例67- 装饰器

Python装饰器是一种用于修改函数或类的行为的特殊语法。它们允许在不修改原始代码的情况下,通过将函数或类作为参数传递给另一个函数来添加额外的功能。装饰器本质上是一个函数,它接受一个函数作为参数,并返...

python常用的语法糖

概念Python的语法糖(SyntacticSugar)是指那些让代码更简洁、更易读的语法特性,它们本质上并不会增加新功能,但能让开发者更高效地编写代码。推导式写法推导式是Python最经典的...

python - 常用的装饰器 decorator 有哪些?

python编程中使用装饰器(decorator)工具,可以使代码更简洁清晰,提高代码的重用性,还可以为代码维护提供方便。对于python初学者来说,根据装饰器(decorator)的字面意思并不...

python数据缓存怎么搞 ?推荐一个三方包供你参考,非常简单好用。

1.数据缓存说明数据缓存可以说也是项目开发中比不可少的一个工具,像我们测试的系统中,你都会见到像Redis一样的数据缓存库。使用缓存数据库的好处不言而喻,那就是效率高,简单数据直接放在缓存中...

用于时间序列数据的Graphite监视工具

结合第三方工具,Graphite为IT性能监控提供了许多好处。本文介绍其核心组件,包括Carbon、Whisper以及安装的基本准则。Graphite监视工具可实时或按需,大规模地绘制来自多个来源的时...

Python3+pygame实现的坦克大战

一、显示效果二、代码1.说明几乎所有pygame游戏,基本都遵循一定的开发流程,大体如下:初始化pygame创建窗口while循环检测以及处理事件(鼠标点击、按键等)更新UI界面2.代码创建一个m...

Python之鸭子类型:一次搞懂with与上下文装饰器

引言在鸭子类型的理念的基础之上,从关注类型,转变到关注特性和行为。结合Python中的魔法函数的体系,我们可以将自定义的类型,像内置类型一样被使用。今天这篇文章中,接着该话题,继续聊一下with语法块...

Python必会的50个代码操作

学习Python时,掌握一些常用的程序操作非常重要。以下是50个Python必会的程序操作,主要包括基础语法、数据结构、函数和文件操作等。1.HelloWorldprint("Hello,...

一文掌握Python 中的同步和异步

同步代码(Sync)同步就像在一个流水线上工作,每个任务都等待前一个任务完成。示例:机器A切割钢板→完成后,机器B钻孔→完成后,机器C上色。在Python中,同步代码看起来像这样:im...

python 标注模块timeit: 测试函数的运行时间

在Python中,可以使用内置的timeit模块来测试函数的运行时间。timeit模块提供了一个简单的接口来测量小段代码的执行时间。以下是使用timeit测试函数运行时间的一般步骤:导入...

Python带你找回童年的万花尺

还记得小时候的万花尺吧?这么画:一点也不费脑筋,就可以出来这么多丰富多彩的复杂几何图形。具体而言,可以用万花尺玩具(如图2-1所示)来绘制数学曲线。这种玩具由两个不同尺寸的塑料齿轮组成,一大一小。小的...

Python 时间模块深度解析:从基础到高级的全面指南

直接上干货一、时间模块核心类介绍序号类名说明1datetime.datetime表示一个具体的日期和时间,结合了日期和时间的信息。2datetime.date表示一个具体的日期。3datetime.t...

取消回复欢迎 发表评论: