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

news2024/11/23 12:32:19

其他组件学习

文章目录

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

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

电弧的产生机理

目录: 1、起弧机理 2、电弧特点 3、电弧放电特点 4、实际意义 1)电力开关装置 2)保险丝 1、起弧机理 电弧的本质是一种气体放电现象,可以理解为绝缘情况下产生的高强度瞬时电流。起弧效果如下图所示: 在电场的…

5 CatBoost模型

目录 1 背景 2 原理 2.1 类别特征处理 2.1.1 传统目标编码: TS 2.1.2 Greedy TS 2.1.3 ordered TS编码 2.1.4 CatBoost处理Categorical features总结 2.2.预测偏移处理 2.2.1 梯度无偏估计 2.3 树的构建​​​​​​​ 3 优缺点 优点 4 代码 1 背景 终于…

关系图卷积神经网络

异质图和知识图谱 同质图与异质图 同质图指的是图中的节点类型和关系类型都仅有一种 异质图是指图中的节点类型或关系类型多于一种 知识图谱 知识图谱包含实体和实体之间的关系&#xff0c;并以三元组的形式存储&#xff08;<头实体, 关系, 尾实体>&#xff0c;即异…

Three.js——聚光灯、环境光、点光源、平行光、半球光

个人简介 &#x1f440;个人主页&#xff1a; 前端杂货铺 &#x1f64b;‍♂️学习方向&#xff1a; 主攻前端方向&#xff0c;正逐渐往全干发展 &#x1f4c3;个人状态&#xff1a; 研发工程师&#xff0c;现效力于中国工业软件事业 &#x1f680;人生格言&#xff1a; 积跬步…

阿里云服务器怎么更换暴露的IP

很多客户阿里云服务器被攻击IP暴露&#xff0c;又不想迁移数据换服务器&#xff0c;其实阿里云服务器可以更换IP&#xff0c;今天就来和大家说说流程&#xff0c;云服务器创建成功后6小时内可以免费更换公网IP地址三次&#xff0c;超过6小时候就只能通过换绑弹性公网IP的方式来…

探索人工智能绘图的奇妙世界

探索人工智能绘图的奇妙世界 人工智能绘图的基本原理机器之美&#xff1a;AI绘图作品AI绘图对艺术创作的影响未来展望与挑战图书推荐&#x1f449;AI绘画教程&#xff1a;Midjourney使用方法与技巧从入门到精通内容简介获取方式&#x1f449;搜索之道&#xff1a;信息素养与终身…

访问云平台中linux系统图形化界面,登录就出现黑屏的问题解决(ubuntu图形界面)

目录 一、问题-图形化界面访问黑屏 二、系统环境 &#xff08;一&#xff09;网络结构示意图 &#xff08;二&#xff09;内部机器版本 三、分析 四、解决过程 &#xff08;一&#xff09;通过MobaXterm远程访问图形化界面(未成功) 1、连接方法 2、连接结果 &#xf…

【新版】系统架构设计师 - 知识点 - 结构化开发方法

个人总结&#xff0c;仅供参考&#xff0c;欢迎加好友一起讨论 文章目录 架构 - 知识点 - 结构化开发方法结构化开发方法结构化分析结构化设计 数据流图和数据字典模块内聚类型与耦合类型 架构 - 知识点 - 结构化开发方法 结构化开发方法 分析阶段 工具&#xff1a;数据流图、…

VUE项目使用.env配置多种环境以及如何加载环境

第一步&#xff0c;创建多个环境配置文件 Vue CLI 项目默认使用 .env 文件来定义环境变量。你可以通过创建不同的 .env 文件来为不同环境设置不同的环境变量&#xff0c;例如&#xff1a; .env —— 所有模式共用.env.local —— 所有模式共用&#xff0c;但不会被 git 提交&…

算法模板-线段树+懒标记

视频连接&#xff1a;C02【模板】线段树懒标记 Luogu P3372 线段树 1_哔哩哔哩_bilibili 题目链接&#xff1a;P3372 【模板】线段树 1 - 洛谷 | 计算机科学教育新生态 (luogu.com.cn) P3374 【模板】树状数组 1 - 洛谷 | 计算机科学教育新生态 (luogu.com.cn) 算法思路 递…

四大战略合作重磅签署,九章云极DataCanvas公司为全球智算生态注能

4月18日&#xff0c;备受瞩目的“2024九章云极DataCanvas智算操作系统新品发布会”上&#xff0c;九章云极DataCanvas公司携手新华出版社、曙光信息产业股份有限公司&#xff08;简称“中科曙光”&#xff09;、黄山旅游发展股份有限公司&#xff08;简称“黄山旅游”&#xff…

51单片机串口输出问题(第一个字符重复,自动循环输出第一个字符)

遇到的问题描述 51单片机使用串口发送数据时出现只循环发送字符串的第一个字符的情况。就算发送的是第一个字符也有时候一直发送。 串口函数代码 参考串口发送注意 #include <reg52.h> //此文件中定义了单片机的一些特殊功能寄存器void UsartInit() {SCON0X50; /…

在Spring Boot实战中碰到的拦截器与过滤器是什么?

在Spring Boot实战中&#xff0c;拦截器&#xff08;Interceptors&#xff09;和过滤器&#xff08;Filters&#xff09;是两个常用的概念&#xff0c;它们用于在应用程序中实现一些通用的逻辑&#xff0c;如日志记录、权限验证、请求参数处理等。虽然它们都可以用于对请求进行…

Navicat连接postgresql时出现‘datlastsysoid does not exist‘报错的问题

连接报错 解决方案 解决方法1&#xff1a;升级navicat 解决方法2&#xff1a;降级pgsql 解决方法3&#xff1a;修改dll 使用3解决 实操演示 1、 打开 Navicat 安装目录&#xff0c;找到libcc.dll文件 2、备份libcc.dll文件&#xff0c;将其复制并粘贴或者修改副本为任何其他名…

L2-045 堆宝塔

L2-045 堆宝塔 分数 25 全屏浏览 切换布局 作者 陈越 单位 浙江大学 堆宝塔游戏是让小朋友根据抓到的彩虹圈的直径大小&#xff0c;按照从大到小的顺序堆起宝塔。但彩虹圈不一定是按照直径的大小顺序抓到的。聪明宝宝采取的策略如下&#xff1a; 首先准备两根柱子&#xff…

Linux:进程调度

Linux&#xff1a;进程调度 进程优先级查看优先级调整优先级 Linux 2.6 内核进程调度队列 进程优先级 查看优先级 在Linux中&#xff0c;进程是有优先级的&#xff0c;我们可以通过指令ps -la来查看&#xff1a; 其中PRI表示priority优先级&#xff0c;在Linux中&#xff0c;…

[openGL] 高级光照-Gamma矫正与衰减

目录 一 衰减 二 衰减公式 三 使用场景 四 代码实现 4.1 部分代码 4.2 未校验的效果 4.3 Gamma校验后的效果 4.4 总结 本章节源码 点击此处 一 衰减 在之前平行光和投光物的部分中&#xff0c;了解了光源的衰减&#xff0c;对于平行光来说是不需要衰减的&#xff0c…

中霖教育:二建考试中六个专业分别有什么特点?

建筑实务 《建筑实务》技术部分多以选择题为主&#xff0c;主要是对各种数据的考查;管理部分以案例题为主&#xff0c;旨在考查大家的综合能力&#xff0c;也是分值占比比较多的部分。进度控制的网络图和流水施工每年必考其一;质量管理主要结合技术部分命题;安全管理和合同管理…

正式发布的Spring AI,能让Java喝上AI赛道的汤吗

作者:鱼仔 博客首页: https://codeease.top 公众号:Java鱼仔 前言 最近几年AI发展实在太快了&#xff0c;仿佛只要半年没关注&#xff0c;一个新的大模型所产生的效果就能超越你的想象。Java在AI这条路上一直没什么好的发展&#xff0c;不过Spring最近出来了一个新的模块叫做S…

高可用集群——keepalived

目录 1 高可用的概念 2 心跳监测与漂移 IP 地址 3 Keepalived服务介绍 4 Keepalived故障切换转移原理介绍 5 Keepalived 实现 Nginx 的高可用集群 5.1 项目背景 5.2 项目环境 5.3 项目部署 5.3.1 web01\web02配置&#xff1a; 5.3.2nginx负载均衡配置 5.3.3 主调度服…