以下内容为自己的学习笔记,如需求转载,请声明原文链接 微信大众号「englyf」mp.weixin.qq.com/s/8qaS8SDCc…
本文大约1685个字,阅读需花6分钟内容不多,
但也花了一些精力如要沟通,
欢迎关注我然后评论区留言
谢谢你的点赞收藏分享
这篇文章属于系列文章《Python 内置界面开发结构 Tkinter入门篇》的第二篇,上接《Python 内置界面开发结构 Tkinter入门篇 甲》,欢迎关注我的微信大众号「englyf」检查这个系列相关文章。
根本控件
上一篇里,介绍了部分根本控件,还有部分也需求持续介绍。
Scale 刻度条
上面经已介绍的那些控件在动态修正数值时,对于用户来说还是不太便利。为了更便利地修正数值,比如用户能够按住鼠标键直接拖动控件时,数值就会跟着变化,刻度条控件 Scale 就刚好能够实现这样的功用。
下面举个栗子,在主界面增加一个刻度条控件。
import tkinter as tk
window = tk.Tk()
scale = tk.Scale(
master=window,
orient=tk.VERTICAL,
length=150,
from_=0,
to_=200
)
scale.pack()
window.mainloop()
实例化控件 Scale,参数 orient 指定刻度条方向(VERTICAL 对应笔直方向,HORIZONTAL 对应水平方向),参数 length 设定控件长度(单位为像素), 参数 from_ 设置数值范围的最小值,参数 to 设置数值范围的最大值。
获取控件 Scale 的当时值,运用 get(),回来整数值或许浮点数。
设置控件 Scale 的当时值,运用 set(),输入设置的数值。
看看显现作用
拖动中心的滑块,把控件当时值拉到168。
Listbox 列表
假如有很多类似的内容需求显现给用户,那么就合适用到列表控件 Listbox。控件 Listbox 用于显现单行文本项的列表,答应用户浏览列表内容,并且挑选一个或多个选项。
举个例子运用控件 Listbox 来显现花名单
import tkinter as tk
window = tk.Tk()
contents = ["贵爷", "蔡礼佛", "梁老师", "鸡毛", "胖子"]
listvar = tk.StringVar(value=contents)
listbox = tk.Listbox(
window,
bd=2,
bg="#dddddd",
listvariable=listvar
)
listbox.grid()
contents.append("助班")
listvar.set(contents)
window.mainloop()
实例化控件 Listbox 时,也运用了一个便利快速操作内部数据的参数 listvariable,类似其它控件的 textvariable 参数,可是因为列表控快速切换到主题控件件内部管理的是文本列表,所以 listvariable 接收的量有必要是列表类型[]。先是直接创建一个列表量,然后传入 StringVar() 转换成特别格式回来,回来值 listvar 再赋给控件 Listbox 实例化的参数 listvariable。
在后边需求更新或读取列表控件内容时,直接调用 listvar.set() 或 listvar.get() 即可。
控件 Listbox 其实是有自带的接口能够操作内部数据的,可是相对于初始化 listvariable 参数来说太硬核了,不行灵敏,所以不展开了。
看看显现作用
主题控件
Tkinter 结构供给了一部分支撑切换主题外观的控件,这些控件包含在 tkinter.ttk 模块(主题模块)内,这些控件被称为主题控件。比如,前面介绍的那些根本控件,在主题模块里根本都有相应的主题版别可供运用,这就使得 tkinter 做出来的界面可观性提高了不少。
别的根本控件和主题控件的 API 根本类似,只有少数差异,所以能够轻松切换运用。
快速切换到主题控件
假如留传代码里运用的是根本控件,为了能运用主题控件来快速覆盖,在导入库时能够参考运用通配符 import (*),这样就不需求大范围修正代码了。
先看下假定的留传代码,代码中只有个按钮 Button。
from tkinter import *
window = Tk()
btn = Button(
text="Click me!",
width=25
)
btn.pack()
window.mainloop()
显现作用是这姿态
然后增加导入主题模块 ttk
from tkinter import *
from tkinter.ttk import *
window = Tk()
btn = Button(
text="Click me!",
width=25
)
btn.pack()
window.mainloop()
看看新的显现作用
看起来主题控件风格的确和基础控件有所不同,主题控件相对更现代一些。
那么为什么呢?往下看。
切换主题
主题库已然支撑切换主题,那么怎样切换到不同的主题?又有哪些主题可供挑选呢?
不同的主题其实就分别对应不同的样式,而 tkinter.ttk 模块供给了 Style 类用于操作主题控件样式。
直接看下面的示例代码
from tkinter import *
from tkinter.ttk import *
window = Tk()
style = Style()
print(style.theme_names())
print(style.theme_use())
btn = Button(
text="Click me!",
width=25
)
btn.pack()
window.mainloop()
履行的程序界面和上面的无异,可是命令终端会有输出
(.venv) D:\englyf\python>python main.py
('winnative', 'clam', 'alt', 'default', 'classic', 'vista', 'xpnative')
vista
上面代码调用 Style 类实例的 theme_names() 回来 tkinter 支撑的所有主题类型(‘winnative’, ‘clam’, ‘alt’, ‘default’, ‘classic’, ‘vista’, ‘xpnative’)。
调用 theme_use() 输入为空,回来默许的主题类型,这里是 vista。假如需求改变主题类型,能够调用 theme_use() 输入对应的主题姓名即可。假如设置主题类型为 winnative,你会留意到控件的风格就变得和根本控件的共同,看来还是 vista 更现代一些。
然后,简单介绍一下部分其它的主题控件,比如进度条 Progressbar。
Progressbar 进度条
有些情况下,某些操作比较耗时间,而用户也不知道这操作到底还要花多长时间时,你就有必要告知用户剩余的操作时间了。为了形象体现出剩余时间或许已履行进度,能够运用控件 Progressbar。
下面举个栗子,在主界面增加一个进度条控件。
import tkinter as tk
import tkinter.ttk as ttk
window = tk.Tk()
progressbar = ttk.Progressbar(
master=window,
maximum=50,
value=50
)
progressbar.pack()
window.mainloop()
看看显现作用
因为篇幅受限,本系列教程还未结束,下一篇《Python 内置界面开发结构 Tkinter入门篇 丙》将在本大众号稍后推送,假如你对此教程有兴趣或许想和我一起沟通更多精彩内容,欢迎关注我的微信大众号【englyf】,等着你哦!