第二部分 Python提高—GUI图形用户界面编程(六)

news/2024/12/4 18:10:33/

其他组件学习

文章目录

  • OptionMenu 选择项
  • Scale 移动滑块
  • 颜色选择框
  • 文件对话框
  • 简单输入对话框
  • 通用消息框
  • ttk 子模块控件

OptionMenu 选择项

OptionMenu(选择项)用来做多选一,选中的项在顶部显示。显示效果如下:
在这里插入图片描述

python">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(移动滑块)控制字体大小变化
在这里插入图片描述

python">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()

颜色选择框

颜色选择框可以帮助我们设置背景色、前景色、画笔颜色、字体颜色等等。

示例 颜色选择框基本用法
在这里插入图片描述

python">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窗口标题

示例 文件对话框基本用法

python">"""文件对话框获取文件"""
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 文件,并读出文件内容到窗口

python">
"""文件对话框获取文件"""
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(最大值)。

python">"""简单对话框"""
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)警告消息框

通用消息框的基本用法

python">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 模块即可。


http://www.ppmy.cn/news/1424535.html

相关文章

JVM性能调优——GC日志分析

文章目录 1、概述2、生成GC日志3、Parallel垃圾收集器日志解析3.1、Minor GC3.2、FULL GC 4、G1垃圾收集器日志解析4.1、Minor GC4.2、并发收集4.3、混合收集4.4、Full GC 5、CMS垃圾收集器日志解析5.1、Minor GC5.2、Major GC5.3、浮动垃圾 6、日志解析工具6.1、GCeasy6.2、GC…

多级缓存实现方案

多级缓存 传统的缓存策略一般是请求到达Tomcat后,先查询Redis,如果未命中则查询数据库,存在下面的问题: 请求要经过Tomcat处理,Tomcat的性能成为整个系统的瓶颈Redis缓存失效时,会对数据库产生冲击 Caff…

最新在Fedora Linux安装MongoDB服务器的简单教程

本指南将帮助你在 Fedora 39/38/37/36 或您正在使用的任何其他版本上安装最新或旧版本的 MongoDB 数据库服务器。 MongoDB 是一种流行的 NoSQL 数据库服务器,提供社区版和企业版。它以其高性能、灵活性和可扩展性而闻名。它是一个无模式数据库,因此允许…

解决拉格朗日四平方和定理

1 问题 “拉格朗日四平方数和定理”是数学中著名的一个定理,其内容为:任意一个正整数均可表示为四个整数的平方和(其中有些整数可以为零)。要求输入一个数,找出所有符合该定理的四个整数? 2 方法 可以通过“四平方数和定理”的含义…

vue.config.js跨域问题解决

讲解视频 问题背景 目标地址: 而当前项目启动是http,协议名不同,所以跨域了 解决步骤和解答 1. 新建vue.config.js文件 2. 添加如下代码: 一般目标路径target写 域名 就可以了 但其实,写路径也可以,…

好用的视频提取工具,轻松2步下载提取视频号视频下载

最近比较忙都没有时间更内容,罪过罪过!很多人就想知道视频号视频可以用什么工具进行下载就这么难吗?面对的目前用户对视频号理解不充分!导致不少小伙伴走了很多弯路,今天就告诉大家使用什么工具可以下载视频号视频。 微信视频号不支持下载 …

吴恩达llama课程笔记:第七课llama安全工具

羊驼Llama是当前最流行的开源大模型,其卓越的性能和广泛的应用领域使其成为业界瞩目的焦点。作为一款由Meta AI发布的开放且高效的大型基础语言模型,Llama拥有7B、13B和70B(700亿)三种版本,满足不同场景和需求。 吴恩…

使用 Meta Llama 3 构建人工智能的未来

使用 Meta Llama 3 构建人工智能的未来 现在提供 8B 和 70B 预训练和指令调整版本,以支持广泛的应用 使用 Meta AI 体验 Llama 3 我们已将 Llama 3 集成到我们的智能助手 Meta AI 中,它扩展了人们完成工作、创造和与 Meta AI 联系的方式。通过使用 Meta AI 进行编码任务和解…