python tkinter怎么读_Python初学 Tkinter

本文详细介绍了Python的Tkinter库,包括基本组件如标签、按钮、输入框的使用,以及列表框、选择按钮、画布和弹窗等功能。通过实例展示了如何创建交互式窗口应用程序,包括登录窗口的实现,提供了丰富的代码示例。
摘要由CSDN通过智能技术生成

此篇文章是跟着沫凡小哥的视频学习的,附上学习网址:https://morvanzhou.github.io/tutorials/python-basic/

什么是 tkinter 窗口

1.1 什么是 Tkinter

Python自带的可编辑的GUI界面,是一个图像窗口。

Tkinter是使用 python 进行窗口视窗设计的模块。简单的构造,多平台,多系统的兼容性, 能让它成为让你快速入门定制窗口文件的好助手。它在 python 窗口视窗模块中是一款简单型的。所以用来入门,熟悉窗口视窗的使用,非常有必要。

tkinter 的窗口部件

2.1 Label & Button 标签和按钮

窗口主体框架

每一个tkinter应用的主体框架都可以包含下面这部分,定义window窗口和window的一些属性,然后书写窗口内容,最后执行window.mainloop让窗口活起来。

164042330_1_20190620095049125.gif

import tkinter as tk

window = tk.Tk()

window.title('my window')

window.geometry('300x100')

#这里是窗口的内容

window.mainloop()

164042330_1_20190620095049125.gif

首先建立一个用来描述的标签tk.Label(注意对象的首字母一般是大写),示例代码如下所示:

164042330_1_20190620095049125.gif

l = tk.Label(window,

text='OMG! this is TK!', #标签的文字

bg='green', #背景颜色

font=('Arial', 12), #字体和字体大小

width=15, height=2) #标签长宽

l.pack() #固定窗口位置

164042330_1_20190620095049125.gif

运行结果如图所示:

164042330_2_20190620095049282.png

我们也可以通过变量的形式控制标签的显示,这时我们引入按钮 tk.Button 的概念,每点一次按钮,标签变化一次。 用以下内容替换上面的标签. 并把需要变化的文字存成变量 var:

var = tk.StringVar() #这时文字变量储存器

l = tk.Label(window,

textvariable=var, #使用 textvariable 替换 text, 因为这个可以变化

bg='green', font=('Arial', 12), width=15, height=2)

l.pack()

接着做按钮tk.Button:

b = tk.Button(window,

text='hit me', #显示在按钮上的文字

width=15, height=2,

command=hit_me) #点击按钮式执行的命令

b.pack() #按钮位置

hit_me函数如下:

164042330_1_20190620095049125.gif

on_hit = False #默认初始状态为 False

def hit_me():

global on_hit

if on_hit == False: #从 False 状态变成 True 状态

on_hit = True

var.set('you hit me') #设置标签的文字为 'you hit me'

else: #从 True 状态变成 False 状态

on_hit = False

var.set('') #设置文字为空

164042330_1_20190620095049125.gif

运行结果如下所示:

没有点击动作时:

164042330_3_20190620095049438.png

点击第一次:

164042330_4_20190620095049532.png

点击第二次:

164042330_3_20190620095049438.png

完整代码:

164042330_1_20190620095049125.gif

import tkinter as tk

window=tk.Tk()

window.title('my window')

window.geometry('300x100')

var=tk.StringVar()

l=tk.Label(window,textvariable=var,bg='green',font=('Arial',12),width=15,

height=2)

l.pack()

on_hit=False

def hit_me():

global on_hit

if on_hit==False:

on_hit=True

var.set('you hit me')

else:

on_hit=False

var.set('')

b=tk.Button(window,text='hit me',width=15,

height=2,command=hit_me)

b.pack()

window.mainloop()

164042330_1_20190620095049125.gif

2.2 Entry & Text 输入, 文本框

在定义了窗口的基础上,首先定义一个Entry,代码如下所示:

e = tk.Entry(window,show=None)

e.pack()

注意这里的show,可以自定义显示你想要在Entry中显示的字符,例如像输入密码时,可令show=‘*’

本节实现的例子功能为,如下所示的一个窗口,从上至下分别为定义的Entry、Button、Button和Text。两个Button分别命名为insert point和insert end,获取Entry中输入的内容并且分别在光标位置、末尾插入,内容显示在Text中。

164042330_5_20190620095049563.png

Button的定义如下所示:

b1 = tk.Button(window,text='insert point',width=15,

height=2,command=insert_point)

b1.pack()

b2 = tk.Button(window,text='insert end',

command=insert_end)

函数的定义如下所示:

164042330_1_20190620095049125.gif

def insert_point():

var = e.get()

t.insert('insert',var)

def insert_end():

var = e.get()

t.insert('end',var)

164042330_1_20190620095049125.gif

完整代码如下:

164042330_1_20190620095049125.gif

import tkinter as tk

window = tk.Tk()

window.title('my window')

window.geometry('300x300')

e = tk.Entry(window,show=None)

e.pack()

def insert_point():

var = e.get()

t.insert('insert',var)

def insert_end():

var = e.get()

t.insert('end',var)

b1 = tk.Button(window,text='insert point',width=15,

height=2,command=insert_point)

b1.pack()

b2 = tk.Button(window,text='insert end',

command=insert_end)

b2.pack()

t = tk.Text(window,height=2)

t.pack()

window.mainloop()

164042330_1_20190620095049125.gif

运行结果如下所示,首先在Entry中输入111111,点击按钮1,如下:

164042330_6_20190620095049672.png

选择某一点作为插入位置,再在Entry中输入2,点击按钮1

164042330_7_20190620095049750.png

在Entry中输入3,点击按钮2

164042330_8_20190620095049844.png

此外,insert还能实现具体位置的内容插入,例如将inser_end函数更改如下:

def insert_end():

var = e.get()

t.insert(2.2,var)

则insert_end实现在Text的2行2列出插入内容,运行结果如下所示:

164042330_9_20190620095049938.png

2.3 Listbox 列表部件

本节例子实现功能为:如下所示,从上到下分别为Label、Button和Listbox,Button实现将Listbox中当前光标选中的内容显示在Label中。

164042330_10_2019062009505047.png

在定义好窗口的基础上首先定义Label,设置底色为黄色,并且要将文本内容定义为变量,代码如下:

var1=tk.StringVar()

l=tk.Label(window,bg='yellow',width=4,textvariable=var1)

l.pack()

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值