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

news/2024/5/19 20:00:25/ 标签: python, java, 数据库

其他组件学习

文章目录

  • 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 进行编码任务和解…

【计算机毕业设计】济南旅游管理系统——后附源码

🎉**欢迎来到琛哥的技术世界!**🎉 📘 博主小档案: 琛哥,一名来自世界500强的资深程序猿,毕业于国内知名985高校。 🔧 技术专长: 琛哥在深度学习任务中展现出卓越的能力&a…

c语言如何理解指针的指针?

1.啥叫指针? 在C语言中,指针是一个非常重要的概念。指针本质上是一个变量,它的值不是数据本身,而是存储数据的内存地址。指针允许程序直接访问和操作内存中的数据,这在很多情况下非常有用,比如在处理数组、…

基于Canvas实现的简历编辑器

基于Canvas实现的简历编辑器 大概一个月前,我发现社区老是给我推荐Canvas相关的内容,比如很多 小游戏、流程图编辑器、图片编辑器 等等各种各样的项目,不知道是不是因为我某一天点击了相关内容触发了推荐机制,还是因为现在Canvas…

bug(警告):[vue-router] Duplicate named routes definition: …

查看警告:[vue-router] Duplicate named routes definition——翻译[vue-router]重复命名路由定义 小编劝诫:当我们在开发过程中警告也一定不要忽略,虽然你在本地跑代码时这些警告影响项目的正常运行,但是会让你产生误区&#xff…

Go语言入门|包、关键字和标识符

目录 Go语言 包文件 规则 关键字 规则 标识符 规则 预定义标识符 Go语言 Go语言是一种静态类型、编译型和并发型的编程语言,由Google开发。Go的源代码文件以.go为扩展名,文件名通常与包名保持一致。一个Go文件可以包含多个顶级声明,…

ubuntu上安装调试SVN服务

刚成立团队需要临时搭建一台SVN服务器,所以对照网上的一些提示做了下,操作起来不复杂,还是踩了不少坑,顺便原理性了解了下。 主要操作步骤如下: 1:安装svn sudo apt-get install subversion 2: 创建svn版…

数组和指针的联系(C语言)

数组和指针是两种不同的数据类型,数组是一种构造类型,用于存储一组相同类型的变量;而指针是一种特殊类型,专门用来存放数据的地址。数组名除了sizeof(数组名)和&数组名表示整个数组外,其他情况下都表示的是首元素的…

Android开发——ListView

activity_main.xml <?xml version"1.0" encoding"utf-8"?> <LinearLayout xmlns:android"http://schemas.android.com/apk/res/android"android:layout_height"match_parent"android:layout_width"match_parent"…

EasyExcel追加写入数据,分批查询多次写入场景下,注意使用方式【OOM警告】

使用.withTemplate(file) 将临时数据文件和真实数据文件合并的方式&#xff0c;在生产环境大批量数据下&#xff0c;完全不可取&#xff0c;有很高的内存溢出风险 伪代码 public static void writeAppend(String fileName) {String filePath "tempDir".concat(Fil…

Android rxjava

一.简介 RxJava是ReactiveX在JVM上的一个实现&#xff0c;ReactiveX使用Observable序列组合异步和基于事件的程序的库&#xff1b;是一个基于事件流、实现异步操作的库。RxJava在Java环境下使用&#xff0c;它通过Observable&#xff08;可观测对象&#xff09;和Subscriber&a…

Android之图片压缩几种方式

大概可以分为以下几类&#xff1a;更换图片格式&#xff0c;质量压缩&#xff0c;采样率压缩&#xff0c;缩放压缩&#xff0c;调用jpeg压缩等 1.设置图片格式 Android目前常用的图片格式有png&#xff0c;jpeg和webp&#xff0c; png&#xff1a;无损压缩图片格式&#xff0…

代码随想录算法训练营第三十六天| 435.无重叠区间、763.划分字母区间、56.合并区间

系列文章目录 目录 系列文章目录435. 无重叠区间贪心算法按左边界排序&#xff08;与【452. 用最少数量的箭引爆气球】思路差不多&#xff09; 763.划分字母区间贪心算法①将字符串映射到哈希数组&#xff0c;用二维数组记录每个字母存在的区间&#xff0c; 转化为重叠区间问题…