写点什么

软件测试|超好用超简单的 Python GUI 库——tkinter

  • 2023-11-01
    北京
  • 本文字数:1451 字

    阅读完需:约 5 分钟

前言

如果我们想要使用 Python 创建一个 GUI 界面,我们应该使用哪个库?Python 有没有实现这个功能的库?答案是肯定的,Python 的库这么多,肯定有实现上述功能的库,那么我们应该使用哪一个库呢?我们这里推荐使用 Python 内置的一个库——tkinter。该模块以 Tcl/tk 作为接口,提供了大量的 GUI 支持。如果想要创建一个美观地、符合操作系统平台的 GUI,推荐使用主题化的模块 tkinter.ttk。

基础使用

首先我们来看一个简单的例子,通过简单示例来介绍一下 tkinter 的使用。代码如下:


from tkinter import Tkroot = Tk()root.title("拜仁慕尼黑")root.geometry("400x400+200+200")root.mainloop()
复制代码


  • Tk() 实例创建一个根窗口

  • root.title 设定窗口的标题

  • root.geometry 设定窗口的大小与相对于屏幕左上角的位置:即参数形式是:f"{width}x{height}{x}{y}",其中 width 与 height 均是正整数,而 x 与 y 是有符号的整数,比如 +23 或者 -23。其中 + 表示相对于左上角,而 - 表示相对于右下角

  • 使用 root.mainloop() 激活根窗口


代码显示效果如下:


组件使用

当我们需要为窗口中的模块区域创建不同于窗口的主题时,我们应该如何处理呢?我们可以使用 Frame 来实现我们的需求,Frame 支持参数传入来说设定容器的尺寸。也支持以索引的赋值的方式修改容器的默认属性,比如修改容器的背景颜色。示例代码如下:


from tkinter import Tk, Frameroot = Tk()root.title("拜仁慕尼黑")width = 400height = 400x = '+200'y = '+200'root.geometry(f"{width}x{height}{x}{y}")frame = Frame(root, height=height, width=width)frame['background'] = 'orange' # 设定背景颜色frame.pack()  # 放置组件root.mainloop()
复制代码


  • Frame 支持参数传入来说设定容器的尺寸,也支持以索引的赋值的方式修改容器的默认属性。比如,此例中修改了背景颜色,将背景颜色修改为橙色。

  • tkinter 为小部件(包括容器)提供了几何管理器(用于布局小部件的摆放位置) Grid、Place、Place,且每个小部件均提供几何管理器的实例方法,比如 frame.pack()


代码显示效果如下:


添加标签

在窗口中需要为某块区域创建一个“标签”,用于显示提示信息给用户时,我们可以使用 label 来添加提示信息。代码如下:


from tkinter import Tk, Frame, Labelroot = Tk()root.title("MyApp")root['background'] = 'yellow'  # 修改根窗口的背景width = 400height = 400x = '+200'y = '+200'root.geometry(f"{width}x{height}{x}{y}")frame = Frame(root, height=height, width=width)frame['background'] = 'red' # 设定背景颜色frame.pack()label = Label(root, text="Player")label['background'] = 'blue' # 设定背景颜色label.pack()root.mainloop()
复制代码



label 同样支持载入图片,如下所示:


from tkinter import Tk, Frame, Label, PhotoImage
root = Tk()root.title("拜仁慕尼黑")root['background'] = 'yellow' # 修改根窗口的背景width = 400height = 400x = '+200'y = '+200'root.geometry(f"{width}x{height}{x}{y}")frame = Frame(root, height=height, width=width)frame['background'] = 'red' # 设定背景颜色frame.pack()image = PhotoImage(file = 'bayern.png')label = Label(root, image=image)label.pack()root.mainloop()
复制代码


结果如下图所示:


总结

本文主要介绍了 tkinter 库的一些基本使用,需要提醒大家的是,Python3.x 版本的库名为 tkinter,Python2.x 版本的库名为 Tkinter。后面我会将会使用 tkinter 编写一些有趣的 GUI 小程序,敬请期待!


获取更多技术资料,请点击!

用户头像

社区:ceshiren.com 微信:ceshiren2021 2019-10-23 加入

微信公众号:霍格沃兹测试开发 提供性能测试、自动化测试、测试开发等资料,实时更新一线互联网大厂测试岗位内推需求,共享测试行业动态及资讯,更可零距离接触众多业内大佬。

评论

发布
暂无评论
软件测试|超好用超简单的Python GUI库——tkinter_霍格沃兹测试开发学社_InfoQ写作社区