赞
踩
Tkinter是Python自带的一个GUI库,他可以将我们在command line中的操作进行可视化操作。并且它简单的构造, 多平台, 多系统的兼容性, 能让它成为让你快速入门定制窗口文件的好助手. 它在 python 窗口视窗模块中是一款简单型的. 所以用来入门, 熟悉 窗口视窗的使用, 非常有必要.
我们可以通过如下代码校验你的Tkinter包是否安装成功:
python -m tkinter # 如果安装成功,那么你的桌面会弹出一个窗口,如下:
接下来,我们要自己创建一个窗口,并且在窗口中加入一个标签Label:
import tkinter as tk
window = tk.Tk() # 创建一个窗口对象
window.title('my first window') #给窗口命名
window.geometry('200x100') #定义窗口的长宽,geometry方法中传入字符串参数,字符串中应为长x宽(Note:x是小写字母x)
# Label(master = None, cnf = {}, **kw), kw参数是类似dict一样接收label组件定义的键值对
l = tk.Label(window, text='successful! created new Label', bg='green', font=('Arial', 12), width=25, height=4)
l.pack() #将定义好的label添加到window上
window.mainloop() #mainloop实际上是使用while循环实现的,因为窗口的内容是会动态变化的
接下来我们继续在窗口上创建Button按钮,并且我们实现了点击一次按钮Label消失,再点击一次按钮Label重新显示:
import tkinter as tk window = tk.Tk() # 创建一个窗口对象 window.title('my first window') #给窗口命名 window.geometry('200x100') #定义窗口的长宽,geometry方法中传入字符串参数,字符串中应为长x宽(Note:x是小写字母x) # Label(master = None, cnf = {}, **kw), kw参数是类似dict一样接收label组件定义的键值对 #l = tk.Label(window, text='successful! created new Label', bg='green', font=('Arial', 12), width=25, height=4) var = tk.StringVar() #将label中的文本动态化设置,可以利用var.set()方法设置textvariable l = tk.Label(window, textvariable=var, bg='green', font=('Arial', 12), width=25, height=4) l.pack() #将定义好的label添加到window上 is_Hidden = False # 设置一个flag变量,用来判断现在窗口的label是显示的还是未显示的 def hidden_me(): global is_Hidden if is_Hidden == False: is_Hidden = True var.set('click me and hidden') else: is_Hidden = False var.set('') var1 = tk.StringVar() var1.set('hidden') #Button(master, option = value, ..), command是点击后发生什么效果的函数 b = tk.Button(window, textvariable = var1, width = 12, height = 2, command = hidden_me) b.pack() # 将button显示在窗口中 window.mainloop() #mainloop实际上是使用while循环实现的,因为窗口的内容是会动态变化的
点击Button之前:
点击Button之后:
再点击hidden Button,Label又会隐藏。
我们在网页中经常会遇到输入框和文本框两种常用的表单项,那么,在Tkinter中有Entry和Text对应了这两种常用的框。我们接下来要做一个小案例(在输入框输入文本,然后设置两个button,button1是在你点击文本框内容的光标处插入输入框中的文本。button2是在文本框内容的末尾插入输入框的文本)
import tkinter as tk window = tk.Tk() window.title('My Window') window.geometry('300x200') e = tk.Entry(window, show = None) # show = None:输入字符可见, show = '*': e.pack() # 在光标处插入entry输入框的数据 def insert_point(): var = e.get() t.insert('insert', var) # 在文本末尾插入entry输入框的数据 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', width = 15, height = 2,command = insert_end) b2.pack() t = tk.Text(window, height = 5) # height定义文本框有多少行 t.pack() window.mainloop()
初始状态:
点击button1 在光标处插入:
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-mQWe3Mrh-1594744798665)(/Users/liyan/Library/Application Support/typora-user-images/image-20200712223347218.png)]
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-svhHX0wk-1594744798666)(/Users/liyan/Library/Application Support/typora-user-images/image-20200712223421949.png)]
点击button2在文本框末尾插入:
这样就使用Entry & Text完成了一个小实例
Note:以上例子在PyCharm中运行,button上的文本不会显示,我的电脑是Mac,Python版本3.7+,在命令行运行脚本既可以看到button中的文本属性。大佬如果知道原因可以给我留言。
我们经常在网页上使用列表框,就比如选择你在填写表单的时候,你需要填写你的学历,这时候会有一个下拉列表框,上面写着:初中毕业,中专,高中,大学等常见的学历选项,你下拉选择好,点击后就会自动给您填上,我们下面做一个小例子:使用Tikinter中的listbox实现点击下拉列表框中的value,在点击Button,将value打印到窗口设置的Label中。
import tkinter as tk window = tk.Tk() window.title('My Listbox') window.geometry('300x200') var1 = tk.StringVar() l = tk.Label(window, textvariable = var1, bg = 'yellow', font=('Arial', 12), width=25, height=4) l.pack() def print_selection(): tmp = lb.get(lb.curselection()) #curselection()表示的是获取当前列表所选中的 var1.set(tmp) # 将当前所选中的listbox的value设置到Lable上。 b = tk.Button(window, text = 'print list selection', width = 12, height = 2, command = print_selection) b.pack() var2 = tk.StringVar() var2.set(('first', 'second',
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。