其他组件学习
文章目录
- OptionMenu 选择项
- Scale 移动滑块
- 颜色选择框
- 文件对话框
- 简单输入对话框
- 通用消息框
- ttk 子模块控件
OptionMenu 选择项
OptionMenu(选择项)
用来做多选一,选中的项在顶部显示。显示效果如下:
from tkinter import *
root = Tk();root.geometry("200x100")
v = StringVar(root)
v.set("菜单")
om = OptionMenu(root, v, "黄闷茄子", "红烧豆腐", "清蒸鲈鱼")
om["width"] = 10
om.pack()
def test1():
print("最爱的菜:", v.get())
Button(root, text="确定", command=test1).pack()
root.mainloop()
Scale 移动滑块
Scale(移动滑块)用于在指定的数值区间,通过滑块的移动来选择值。
使用Scale(移动滑块)控制字体大小变化
from tkinter import *
root = Tk();root.geometry("200x100")
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 *
from tkinter.colorchooser import *
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(root,text="选择背景色",command=test1).pack()
root.mainloop()
文件对话框
文件对话框帮助我们实现可视化的操作目录、操作文件。最后,将文件、目录的信息传入到程序中。文件对话框包含如下一些常用函数:
函数名 | 对话框 | 说明 |
---|---|---|
askopenfilename(**options) | 文件对话框 | 返回打开的文件名 |
askopenfilenames(**options) | 文件对话框 | 返回打开的多个文件名列表 |
askopenfile(**options) | 文件对话框 | 返回打开文件对象 |
askopenfiles(**options) | 文件对话框 | 返回打开的文件对象的列表 |
askdirectory(**options) | 目录对话框 | 返回目录名 |
asksaveasfile(**options) | 保存对话框 | 返回保存的文件对象 |
asksaveasfilename(**options) | 保存对话框 | 返回保存的文件名 |
命名参数options 的常见值如下:
参数名 | 说明 |
---|---|
defaultextension | 默认后缀:.xxx,用户没有输入则自动添加 |
filetypes=[(label1,pattern1),(labe2,pattern2)] | 文件显示过滤器 |
initialdir | 初始目录 |
initialfile | 初始文件 |
parent | 父窗口,默认根窗口 |
title | 窗口标题 |
示例 文件对话框基本用法
"""文件对话框获取文件"""
from tkinter import *
from tkinter.filedialog import *
root = Tk()
root.geometry("400x100")
def test1():
f = askopenfilename(title="上传文件",initialdir="f:/file",filetypes=[("视频文件",".mp4")])
#print(f)
show["text"]=f
Button(root,text="选择编辑的视频文件",command=test1).pack()
show = Label(root,width=40,height=3,bg="green")
show.pack()
root.mainloop()
示例 打开指定txt 文件,并读出文件内容到窗口
"""文件对话框获取文件"""
from tkinter import *
from tkinter.filedialog import *
root = Tk()
root.geometry("400x100")
def test1():
with askopenfile(title="上传文件",initialdir="d",filetypes=[("文本文件",".txt")]) as f :
#print(f)
show["text"]=f.read()
Button(root,text="选择读取的文本文件",command=test1).pack()
show = Label(root,width=40,height=3,bg="green")
show.pack()
root.mainloop()
简单输入对话框
simpledialog(简单对话框)包含如下常用函数:
函数名 | 说明 |
---|---|
askfloat(title,prompt,**kw) | 输入并返回浮点数 |
askinteger(title,prompt,**kw) | 输入并返回整数 |
askstring(title,prompt,**kw) | 输入并返回字符串 |
参数中,title
表示窗口标题;prompt
是提示信息;命名参数kw 为各种选项:initialvalue
(初始值)、minvalue
(最小值)、maxvalue
(最大值)。
"""简单对话框"""
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,**options) | OK/Cancel 对话框 |
askquestion(title,message,**options) | Yes/No 问题对话框 |
askretrycancel(title,message,**options) | Retry/Cancel 问题对话框 |
showerror(title,message,**options) | 错误消息对话框 |
showinfo(title,message,**options) | 消息框 |
showwarning(title,message,**options) | 警告消息框 |
通用消息框的基本用法
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 模块即可。