设为首页 加入收藏

TOP

Python 内置界面开发框架 Tkinter入门篇 甲(一)
2023-07-25 21:27:08 】 浏览:55
Tags:Python Tkinter
本文大概 4158 个字,阅读需花 10 分钟
内容不多,但也花了一些精力
如要交流,欢迎关注我然后评论区留言
谢谢你的点赞收藏分享

首先,今天先给大家拜个好年!新年快乐,恭喜发财!为了感谢大家对我的鼓励和支持,特地在公众号里搞了一波红包抽奖活动。如果需要参与沾沾手气的话,可以在1月23号22:00之前到公众号消息页面回复关键词【钱兔无量】,然后系统会自动回复抽奖活动的链接,点击进去看提示继续操作即可。

农历新的一年开始了,打工的烦心事儿可以稍停,但是学习不能停止!

关于 Tkinter

上期讲过,python 其实有三大流行 GUI 开发框架,包括 PyQt、wxPython 和 Tkinter。wxPython 也在上期文章介绍过,今天给大伙带来 Tkinter 的入门介绍!

Tkinter 是 python 标准库内嵌自带的界面开发框架,算得上是皇亲国戚了。如此火热的 python ,又怎能不了解一下它自带的界面开发框架呢?

Tkinter 有很多强大的地方,比如跨平台特性。同一套代码可以轻松运行在 Windows, macOS 和 Linux 系统环境下。它的可视化元素都是基于本地系统元素渲染而得,所以和原生开发相比看不出来有什么区别。

另外,Tkinter 和其它 GUI 框架相比非常轻量和简洁。这就带来了很明显的缺点,界面风格有些过时。如果你需要开发光鲜亮丽的应用,可以参考一下我的其它博文,其中可找到其它的解决方案,总有适合你的那一款!而轻量级的优点也是很突出的,如果华丽花哨的可视化于你是无关紧要的话,Tkinter 真的可以拿来即用,也没有繁杂的开发流程,方便专注于功能的快速实现。对于急用的工具型软件,有必要活捉一番 Tkinter。

关于往期相关的文章,有兴趣可前往关注我的微信公众号 「englyf」 查看,倍感荣幸能得到你的关注!

这将是一个系列文章,你可以了解到这些信息:

Tkinter 应用的基本框架是什么样子?
常用的基本控件有哪些?
除了基本控件,还有主题控件?
怎样布局界面?
如何与界面元素交互?
手把手写一个简单的记事本应用

本文所有测试代码运行环境基于 win10 x64。

基本框架

好了,八戒为了见 Tkinter 一面,就像娶媳妇一样,匆忙揭开盖头,一睹为快。

新建文件 main.py,先写一个 hello world 吧!

import tkinter as tk

window = tk.Tk()
window.title("hello world !")
window.mainloop()

可以看到,需要先导入库 tkinter,名字有点长,所以命名为 tk 方便下面的引用。

绝大部分的界面应用都需要一个顶层窗口,这里通过实例化类 Tk 获得。然后在这个顶层窗口的标题栏设置标题,调用方法 title(),传入 “hello world”。最后,为了响应用户的交互和输入,必须调用主窗口的 mainloop() 以启动事件环。

虽然 tkinter 是 python 标准库的自带 GUI 框架,但是在使用前也得先安装 tk 库。

pip install tk

安装完,使用 pip list 确认一下

Package    Version
---------- -------
pip        22.3.1
setuptools 56.0.0
tk         0.1.0

写作时,当前安装的最新版本是 0.1.0。

上面的环境配置指令建议在预先准备好的虚拟环境下执行,至于怎么配置虚拟环境,可以看看我的另一篇文章《Python:灵活的开发环境》

然后在环境下,输入脚本启动指令

python main.py

看看跑起来的界面程序什么样子

从上面代码来看,没有冗余的部分,的确是拿来即用。

基本控件

下面是一些基本又常用的控件

控件类 说明
Label 文本标签,显示静态文本
Button 按键,可点击的按键
Frame 矩形区域,组合相关控件
Entry 单行输入框,输入单行文本
Text 多行输入框,输入多行文本
Spinbox 范围输入框,选择指定范围内的值
Scale 刻度条,拖动按钮选取数值
Progressbar 进度条,显示进度
Listbox 列表,显示浏览和选择单行文本项的列表

当然 tkinter 的基本控件还有不少没列出来,由于篇幅有限,本文着重于入门级别,如果你有需要查找更全面的信息可以继续关注本公众号的后续更新。所以接下来就从上面的表格中挑几个基本的控件来细讲,继续看。

Label 文本标签

做界面的时候,如果你需要显示一些静态的文本,比如在某些元素前面显示一个名称,那么就可以用到控件 Label。这里要注意,控件 Label 被设计用于向用户显示文本,而不是获取文本。

比如,要显示一行文本 display text with framework tkinter

import tkinter as tk

window = tk.Tk()
lbl = tk.Label(
    master=window,
    text="display text with tkinter framework",
    fg="white",
    bg="black",
    width=40,
    height=10
    )
lbl.pack()
window.mainloop()

实例化类 Label 的时候,演示了传入参数 master,text,fg,bg,width 和 height。

参数 master 用于指定被实例化的控件被放置在哪个父控件中,这里指定将实例化的控件 Label 放置在顶层窗口 window 中。

注意:如果 master 参数被忽略,那么被实例化的控件就默认被放置在顶层窗口中。

参数 text 传入的内容就是要显示的文本字符串。

参数 fg 和 bg 分别是 fontground 和 background 的缩写,分别表示字体颜色和背景颜色。可以输入有效的颜色名字,比如 "white","black","red","orange","yellow","green","blue","purple"等 ,或者输入 # 开头的 RGB 值,比如 "#34A2FE"。

参数 width 和参数 height 分别用于设置控件的宽高。

要注意的是,上面用到的参数 width 和参数 height 的单位不是像素而是文本单位,1个单位 width 表示文本字符 0 的宽度,1个单位 height 表示文本字符 0 的高度。所以,如果 width 和 height 数值相等,那么实际显示效果也不会是正方形。

像上面说的那样子,单纯创建完控件是无法显示出来的。为了显示控件,还需要调用几何图形管理器(geometry manager),如代码所示,这里使用的几何图形管理器是 pack。当然也可以选用其它的管理器,在下面的界面布局主题章节中会专门介绍,继续看。

看看显示效果

另外,tkinter 对提供的带有文本的部分控件,比如 Label 等,在实例化时,还有个非常有用的参数 textvariable。这个参数需要传入 tkinter 提供的特定字符串类型的变量。然后,在需要读取

首页 上一页 1 2 3 下一页 尾页 1/3/3
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
上一篇扑克玩法:9点半--数据分析 下一篇python图片拼接

最新文章

热门文章

Hot 文章

Python

C 语言

C++基础

大数据基础

linux编程基础

C/C++面试题目