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

其他组件学习

文章目录

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/557373.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

栈和队列OJ(面试高频题 - 看完包!!!拿捏)

目录 题目一:括号匹配问题(来源) 题目描述 题目思路及实现 题目二:用队列实现栈(来源) 题目描述 题目思路及实现 题目三:用栈实现队列(来源) 题目描述 题目思路及实现 …

C# 窗体应用程序 Chart控件显示实时曲线

IDE: VS2019 项目模板:C# windows 窗体应用(.NET Framework) 【参考】 B站上教程C#Chart控件画折线图的使用,关于Chart控件的属性,介绍得非常详细。B站上教程C#上位机Chart控件实时曲线终极讲解,对鼠标滚轮事件等,多…

数据结构初阶-二叉树

🌈个人主页:羽晨同学 💫个人格言:“成为自己未来的主人~” 二叉树 树概念和结构 树的概念 树是一种非线性的数据结构,它是由n(n>0)个有限节点组成的一个具有层次关系的集合,把它叫做树…

在H5开发App应用程序过程中的一些常见问题

哈喽,大家好呀,淼淼又来和大家见面啦,H5开发是一种可以跨平台、跨设备、且可以在各种设备上运行,无需安装额外的应用程序。最近有许多小伙伴跟我聊到在h5开发App应用程序的过程中遇到了一些问题,今天我们就这些问题来做…

赫克Hurco触摸屏维修工控机显示屏G190EG01

美国赫克Hurco工控机控制器维修C5SH11 Hurco工控机电脑维修 主要适用范围是:石油和石油化学工业、灶矿、油田、化学工业、化纤工业、油漆工业、肥料工业、各种制造工业。石油轮和车辆、飞机、仓库、电解车间、通讯机装配车间、要求工具不生锈、抗磁的场所等。 hurc…

SQL连接查询

连接查询: 同时涉及多个表的查询称为连接查询。 SQL中连接查询的主要类型 (1) 交叉连接(广义笛卡尔积) (2) 等值连接 (3) 自身连接 (4) 内连接 (5) 外连接 1.交叉连接 使用笛卡尔积运算的连接方式 笛卡尔积运算:设A&#xff…

Java 的注释

文章目录 java 的注释共有三种形式单行注释多行注释文档注释文档注释的文档需要命令进行生成GBK 不可映射问题 与大多数的编程语言一样,Java 中的注释也不会出现在可执行程序中。 因此我们可以在源程序中根据需要添加任意多的注释,而不必担心可执行代码受…

LeetCode:203.移除链表元素

🏝1.问题描述: 🏝2.实现代码: typedef struct ListNode ListNode; struct ListNode* removeElements(struct ListNode* head, int val) {if(headNULL)return head;ListNode *NewHead,*NewTail;ListNode *pcurhead;NewHeadNewTail…

揭秘七星创客模式:如何轻松实现财富增长

亲爱的朋友们,我是微三云的周丽,一名专注于私域电商模式创新的探索者。 在当今商业社会,随着科技的飞速发展和互联网的普及,商业模式的创新和变革成为企业发展的关键。其中,七星创客模式以其独特的魅力和gao效的yun营…

这就是酷雷曼500位合作商成功的底气

你只管赚钱,其它交给总部! 敢做出这样的承诺,酷雷曼凭的就是“保姆式”的帮扶政策。酷雷曼致力于建立一个可持续良效发展的合作商运营体系,无论是落地扶持还是培训服务,全方位为合作商保驾护航! 陪跑式落…

注意力机制基本思想(一)

​🌈 个人主页:十二月的猫-CSDN博客🔥 系列专栏: 🏀《深度学习基础知识》 相关专栏: ⚽《机器学习基础知识》 🏐《机器学习项目实战》 🥎《深度学习项目实战…

超详细Web程序设计基础知识,新手设计师快收藏!

Web 程序设计是现代计算机科学的核心领域之一。它涉及到开发各种不同类型的网站和应用程序,从基本的静态页面到复杂的动态应用程序。本文将介绍 Web 程序设计的基础知识,包括 JavaScript、HTML、CSS 等方面的内容。 1、JavaScript JavaScript 是一种脚…

【Web】Dest0g3 520迎新赛 题解(全)

目录 phpdest EasyPHP SimpleRCE funny_upload EasySSTI middle PharPOP ezip NodeSoEasy Really Easy SQL&easysql EzSerial ljctr phpdest 尝试打pearcmd,但似乎没有写文件的权限 ?config-create/&file/usr/local/lib/php/pearcmd.php&a…

C++学习————第七天(初始化列表、static,友元,内部类)

今天已经是C学习第七天,希望这篇文章能够给大家带来更多的帮助,相应文章都放在C学习专栏里面。 C学习————第五天(构造函数 析构函数 拷贝构造函数)-CSDN博客 C学习————第六天 (运算符重载 const成员 取地址&…

[渗透测试学习] Monitored-HackTheBox

Monitored-HackTheBox 信息搜集 nmap扫描一下端口 nmap -sV -sC -v --min-rate 1000 10.10.11.248扫描结果如下 PORT STATE SERVICE VERSION 22/tcp open ssh OpenSSH 8.4p1 Debian 5+deb11u3 (protocol 2.0) 80/tcp open http Apache httpd …

阿里巴巴拍立淘API让购物更智能:图片搜索商品,信息快速呈现,个性化推荐更精准

随着互联网的不断发展,电子商务已经成为人们日常生活中不可或缺的一部分。然而,传统的文本搜索方式在购物过程中往往存在信息不匹配、效率低下等问题。为了解决这些问题,阿里巴巴推出了拍立淘API,通过图片搜索商品的方式&#xff…

graphviz使用

安装 brew install graphviz测试 https://github.com/martisak/dotnets?tabreadme-ov-file

德鲁伊参数踩坑之路

上文说到 Druid德鲁伊参数调优实战,也正因此次优化,为后续问题埋下了伏笔 背景 2024/04/16日,业务反馈某个定时统计的数据未出来,大清早排查定位是其统计任务跑批失败,下面给一段伪代码 // 无事务执行 public void …

05 JavaScript学习:语法

JavaScript 是一种动态类型的脚本语言,广泛用于网页开发和构建交互式网页。JavaScript 的语法相对简单,但功能强大,它可以在客户端执行,并与HTML和CSS一起构建交互式的网页。 JavaScript 字面量 在 JavaScript 中,字…

吴恩达机器学习笔记:第 7 周-12支持向量机(Support Vector Machines)12.4-12.6

目录 第 7 周 12、 支持向量机(Support Vector Machines)12.4 核函数 112.5 核函数 212.6 使用支持向量机 第 7 周 12、 支持向量机(Support Vector Machines) 12.4 核函数 1 回顾我们之前讨论过可以使用高级数的多项式模型来解决无法用直线进行分隔的分类 问题: …