大家好, 我是程序员晓晓
今天我们将深入学习GUI图形界面编程tkinter, 了解高级组件的使用方式
tkinter高级组件
在GBK外围住所中, 奥菲利亚向我们解释到了. 最初整个地区都相安无事, 但是自从某天马塞尔大叔在天帷禁地发狂之后, 像瘟疫一般的病毒便散播开来. 到最后, 几乎除了现任教主奥菲利亚, 他人无人幸免. 于是, 在奥菲利亚的再次请求下, 了不起慎重思考后决定前往天帷禁地查明原因. 导师GSC嗅到了一丝不安的情况, 打算现在阿拉德寻找一些朋友来帮忙. 于是了不起当下就和GSC分道扬镳…
OptionMenu 选择项
OptionMenu(选择项, 类似前端多选框)用来做多选一,选中的项在顶部显示。显示效果如下:
实操代码
from tkinter import Tk, StringVar, OptionMenu, Button
root = Tk()
root.geometry("200x100")
v = StringVar(root)
v.set("首选项")
"""下拉列表选项框"""
om = OptionMenu(root, v, "第二选项", "第三选项", "第四选项")
om["width"] = 10
om.pack()
def test1():
print("您的选择是:", v.get())
v.set("新设置的首选项") # 直接修改了 optionmenu 中选中的值
Button(root, text="确定", command=test1).pack()
root.mainloop()
结果展示
Scale 移动滑块
Scale(移动滑块)用于在指定的数值区间,通过滑块的移动来选择值
实操代码
"""
scale 滑块的使用测试
【示例】使用 Scale(移动滑块)控制字体大小变化
"""
from tkinter import *
root = Tk()
root.geometry("400x150")
def test1(value):
print("滑块的值:", value)
newFont = ("宋体", value)
a.config(font=newFont) # 这里将滑块的值, 附入标签中
s1 = Scale(root, from_=10, to=50, length=200, tickinterval=5, orient=HORIZONTAL, command=test1)
s1.pack()
a = Label(root, text="测试滑块", width=10, height=1, bg="black", fg="white")
a.pack()
root.mainloop()
结果展示
颜色选择框
实操代码
from tkinter import Tk, StringVar, OptionMenu, Button
from tkinter.colorchooser import askcolor
print("======================================")
root = Tk()
root.geometry("400x150")
def test1():
s1 = askcolor(color="red", title="选择背景色")
print(s1) # s1 的值是:((0.0, 0.0, 255.99609375), '#0000ff')
root.config(bg=s1[1]) # 这里, 将父组件的颜色设置成button按钮点击后颜色选择框的值,
Button(root, text="选择背景色", command=test1).pack()
root.mainloop()
结果展示
文件对话框
文件对话框帮助我们实现可视化的操作目录、操作文件. 将文件、目录的信息传入到程序中
文件对话框包含如下一些常用函数命名参数 options 的常见值如下:
实操代码——文件对话框基本用法
"""文件对话框获取文件"""
from tkinter import *
from tkinter.filedialog import *
root = Tk()
root.geometry("400x100")
def test1():
f = askopenfilename(title="上传文件", initialdir="f:/file", filetypes=[("视频文件", ".mp4")]) # askopenfilename(**options) 返回打开的文件名
# print(f)
show["text"] = f # 这里label将显示选择的视频文件名称
Button(root, text="选择编辑的视频文件", command=test1).pack()
show = Label(root, width=40, height=3, bg="green")
show.pack()
root.mainloop()
结果展示
简单输入对话框
simpledialog(简单对话框)包含如下常用函数:实操代码
"""简单对话框"""
from tkinter.simpledialog import *
root = Tk()
root.geometry("400x100")
def test1():
a = askinteger(title="输入年龄", prompt="请输入年龄 ", initialvalue=18, minvalue=1,
maxvalue=150) # askstring、askfloat 框使用方式一样
show["text"] = a
Button(root, text="你有多大了? 请点击后输入", command=test1).pack()
show = Label(root, width=40, height=3, bg="green")
show.pack()
root.mainloop()
结果展示
通用消息框
messagebox(通用消息框)用于和用户简单的交互,用户点击确定、取消
如下列出了 messagebox 的常见函数:
函数 | 说明 |
---|---|
askokcancel(title,message,**opt ions) | OK/Cancel 对话框 |
askquestion(title,message,**opt ions) | Yes/No 问题对话框 |
askretrycancel(title,message,** options) | Retry/Cancel问题对话框 |
showerror(title,message,**optio ns) | 错误消息对话框 |
showinfo(title,message,**option s) | 消息框 |
showwarning(title,message,**opt ions) | 警告消息框 |
实操代码
from tkinter import *
from tkinter.messagebox import *
root = Tk()
root.geometry("400x100")
a1 = showinfo(title="测试通用消息框", message="点击出现通用消息框")
print(a1)
root.mainloop()
结果展示
ttk 子模块控件
前面学的组件是 tkinter 模块下的组件,整体界面风格较老旧。为了弥补这点不足, 推出了 ttk 组件ttk 组件更加美观、功能更加强大, 新增了 LabeledScale(带标签的 Scale)、Notebook(多文档窗口)、Progressbar(进度条)、Treeview(树)等组件. 使用 ttk 组件与使用普通的 Tkinter 组件并没有多大的区别,只要导入 ttk 模块即可
注意事项:
-
ttk 子模块的官方文档: https://docs.python.org/3.7/library/tkinter.ttk.html
-
如果项目确实需要用到复杂的界面,推荐大家使用 wxpython 或者 pyQt.
为了通往禁地, 他们首先来到了位于天帷巨兽头部的树精丛林. 这里的树木由于受到了天帷巨兽分泌的体液影响, 开始诞生了原始意志, 但后来被某种强大的精神力量控制了意识, 开始四处攻击通过此地的人们. 好在奥菲利亚提前告知了这些树精的弱点: 惧怕冰冻和火焰. 于是了不起便拿出了自己花费5级技能点学习到的技能: 魔剑奥义. 可以将手持武器变换成各种属性, 威力和强达到他当前所能达到的极致.
在将武器切换成火属性之后, 便开始攻坚. 可是, 在刚一出手, 了不起便吃到了苦头: 原来树精的攻击力虽然很低而且移动迟缓, 但是由于受到了火属性攻击则会爆炸, 自己也无法幸免, 受到了不小的伤害. 于是了不起便停下来思考如何对敌, 突然他灵机一动: 决定将当前区域的所有树精都聚集在一起, 然后利用冰属性攻击攻击降低他们的移动速度, 最后利用火属性攻击让他们相互爆炸进. 在了不起的计策下, 终于成功的通过了这一区域. 而在此时, 他的等级也成功晋升lv21.
感兴趣的小伙伴,赠送全套Python学习资料,包含面试题、简历资料等具体看下方。
一、Python所有方向的学习路线
Python所有方向的技术点做的整理,形成各个领域的知识点汇总,它的用处就在于,你可以按照下面的知识点去找对应的学习资源,保证自己学得较为全面。
二、Python必备开发工具
工具都帮大家整理好了,安装就可直接上手!
三、最新Python学习笔记
当我学到一定基础,有自己的理解能力的时候,会去阅读一些前辈整理的书籍或者手写的笔记资料,这些笔记详细记载了他们对一些技术点的理解,这些理解是比较独到,可以学到不一样的思路。
四、Python视频合集
观看全面零基础学习视频,看视频学习是最快捷也是最有效果的方式,跟着视频中老师的思路,从基础到深入,还是很容易入门的。
五、实战案例
纸上得来终觉浅,要学会跟着视频一起敲,要动手实操,才能将自己的所学运用到实际当中去,这时候可以搞点实战案例来学习。
六、面试宝典