前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Python Tkinter之初体验

Python Tkinter之初体验

作者头像
松鼠爱吃饼干
发布2021-03-16 10:52:17
1.6K0
发布2021-03-16 10:52:17
举报
文章被收录于专栏:Python分享

前言

官方用的GUI工具包——Tkinter(IDLE就是用这个开发的)。 Tkinter是Python的标准GUI库,它实际是建立在Tk技术上的。在大多数Unix平台以及Windows系统上 都可用。 作为 python 特定的GUI界面,是一个图像的窗口,tkinter是python 自带的,可以编辑的GUI界面,我 们可以用GUI 实现很多直观的功能,比如想开发一个计算器,如果只是一个键盘输入,输出的黑色窗 口,是没用用户体验的。所有开发一个图像化的小窗口,就是必要的。 对于稍有GUI编程经验的人来说,Python的Tkinter界面库是非常简单的。python的GUI库非常多,选择 Tkinter,一是最为简单,二是自带库,不需下载安装,随时使用,三则是从需求出发,Python作为一 种脚本语言,或者说一种胶水语言,一般不会用它来开发复杂的桌面应用,它并不具备这方面的优势, 使用Python,可以把它作为一个灵活的工具,而不是作为主要开发语言,那么在工作中,需要制作一个 小工具,肯定是需要有界面的,不仅自己用,也能分享别人使用,在这种需求下,Tkinter是足够胜任 的!

Tkinter是Python默认的GUI库,像IDLE就是用Tkinter设计出来的,因此直接导入Tkinter模块就可以了:

Tkinter之初体验

接下来从最简单的例子入手:

代码语言:javascript
复制
import tkinter import tkinter as tk 

# 创建一个主窗口,用于容纳整个GUI程序 
root = tk.Tk() 
# 设置主窗口对象的标题栏 
root.title("First Demo") 
# 添加一个Label组件,Label组件是GUI程序中最常用的组件之一。
# Label组件可以显示文本、图标或者图片 
# 在这里我们让它显示指定文本 
theLabel = tk.Label(root, text="我的第一个tkinter窗口!") 
# 然后调用Label组件的pack()方法,用于自动调节组件自身的尺寸 
theLabel.pack() 
# 注意,这时候窗口还是不会显示的… 
# 除非执行下面这条代码! 
root.mainloop()

执行程序,如图所示。

loop因为是循环的意思,root.mainloop就会让root不断的刷新,如果没有mainloop,就是一个静态的root,传入进去的值就不会有循环,mainloop就相当于一个很大的while循环,有个while,每点击一次就会更新一次,所以我们必须要有循环。

所有的窗口文件都必须有类似的mainloop函数,mainloop是窗口文件的关键的关键。

意思是一旦进入了主事件循环,就由Tkinter掌管一切了。现在不理解没关系,在后面的学习中你会有深刻的体会。GUI程序的开发与以往的开发经验会有截然不同的感受。

通常如果要写一个比较大的程序,那么应该先把代码给封装起来。在面向对象的编程语言中,就是封装成类。看下面进阶版的例子:

代码语言:javascript
复制
import tkinter as tk 
def create_button(root): 
  # 创建一个按钮组件 
  # fg 是 foreground 的缩写, 就是设置前景色的意思 
  say_hello = tk.Button(root, text='打招呼', fg='blue', command=eat) 
  say_hello.pack() 
  return root 

def eat(): 
  print('今天你吃饭了吗?')

root = tk.Tk() 
app = create_button(root) 
root.mainloop()

程序跑起来后出现一个“打招呼”按钮,单击它就能从IDLE接收到回馈信息,如图所示

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2021-03-11,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 松鼠爱吃饼干 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 前言
  • Tkinter之初体验
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档