基于Python制作一个简易UI界面
基于Python制作一个简易UI界面
目录
- 基于Python制作一个简易UI界面
- 1 原理简介
- 2 编写程序
- 3 程序测试
 
1 原理简介
这里用到了Python自带的UI库tkinter。
tkinter 是 Python 的标准 GUI(图形用户界面)库,用于创建和管理图形界面。它提供了一个简单的方式来创建窗口、对话框、按钮、文本框等界面元素,并允许用户与它们进行交互。tkinter 是跨平台的,可以在大多数操作系统上运行,包括 Windows、macOS 和 Linux。
基本组件
| 组件 | 介绍 | 
|---|---|
| 窗口 Window | 这是 GUI 应用程序的主要部分,所有其他组件都放置在其中 在 tkinter 中窗口是通过 Tk() 类创建的 | 
| 框架 Frame | 这是一个容器,可以包含其他组件,并允许你组织布局 在 tkinter 中框架是通过 Frame() 类创建的 | 
| 标签 Label | 用于显示文本或图像 在 tkinter 中标签是通过 Label() 类创建的 | 
| 按钮 Button | 用户可以点击它来触发某些动作 在 tkinter 中按钮是通过 Button() 类创建的 | 
| 文本框 Textbox/Entry | 允许用户输入单行文本 在 tkinter 中文本框是通过 Entry() 类创建的;如果需要多行文本,则使用 Text() 类 | 
| 单选按钮 Radiobutton | 一组按钮中只能选择一个 在 tkinter 中单选按钮是通过 Radiobutton() 类创建的,并且通常与一个 StringVar() 变量相关联,以跟踪选中的值 | 
| 复选框 Checkbutton | 允许用户选择多个选项 在 tkinter 中复选框是通过 Checkbutton() 类创建的,并且通常与一个 IntVar() 变量(对于每个复选框)相关联,以跟踪选中状态 | 
| 列表框 Listbox | 显示一个字符串列表,用户可以选择一个或多个项 在 tkinter 中列表框是通过 Listbox() 类创建的 | 
| 菜单 Menu | 下拉或弹出菜单,包含用户可以选择的选项 在 tkinter 中菜单是通过 Menu() 类创建的,并且通常与 Menubutton() 或窗口的菜单栏相关联 | 
布局管理
 tkinter 提供了几种布局管理器来帮助你组织组件:
| 布局 | 介绍 | 
|---|---|
| pack() | 这是一种简单的布局管理器,它按照添加顺序将组件放置在父容器中,可以指定顶部、底部、左侧或右侧对齐 | 
| grid() | 这种布局管理器将容器划分为一个二维网格,每个组件都可以放置在一个特定的网格单元格中 | 
| place() | 这种布局管理器允许你指定组件在其父容器中的绝对位置(x 和 y 坐标)以及大小(宽度和高度) | 
事件处理
 tkinter 使用回调函数来处理用户交互(如按钮点击)触发的事件。你可以将回调函数与组件的特定事件相关联,当事件发生时,tkinter 会自动调用该函数。
2 编写程序
功能设计如下:
 UI界面包含常用的几种控件的(文本标签、按键、文本输入框、选择按钮、复选框),当点击按键时,会弹出一个信息框,显示用户输入的文本、选中的单选按钮以及选中的复选框。
示例代码如下:
import tkinter as tk
from tkinter import messageboxdef on_button_click():user_text = entry.get()selected_radio = radio_var.get()selected_checkboxes = [label for label, var in checkboxes.items() if var.get()]messagebox.showinfo("信息", f"你输入的是: {user_text}\n你选择了: {selected_radio}\n你选中的复选框: {', '.join(selected_checkboxes)}")# 创建主窗口
root = tk.Tk()
root.title("简易界面")# 创建文本输入框并放置在窗口上
entry_label = tk.Label(root, text="请输入一些文本:")
entry_label.pack(pady=5)
entry = tk.Entry(root, width=30)
entry.pack(pady=5)# 创建单选按钮组并放置在窗口上
radio_label = tk.Label(root, text="请选择一个选项:")
radio_label.pack(pady=5)
radio_var = tk.StringVar(value="选项1")
radio_buttons = [tk.Radiobutton(root, text="选项1", variable=radio_var, value="选项1"),tk.Radiobutton(root, text="选项2", variable=radio_var, value="选项2"),tk.Radiobutton(root, text="选项3", variable=radio_var, value="选项3")
]
for button in radio_buttons:button.pack(anchor=tk.W, padx=10)# 创建复选框组并放置在窗口上
checkbox_label = tk.Label(root, text="请选择一些复选框:")
checkbox_label.pack(pady=5)
checkboxes = {"复选框1": tk.IntVar(),"复选框2": tk.IntVar(),"复选框3": tk.IntVar()
}
checkbox_widgets = {}
for label_text, var in checkboxes.items():checkbox = tk.Checkbutton(root, text=label_text, variable=var)checkbox.pack(anchor=tk.W, padx=10)checkbox_widgets[label_text] = checkbox  # 可选:存储小部件引用以便后续访问# 创建按钮并放置在窗口上
button = tk.Button(root, text="提交", command=on_button_click)
button.pack(pady=20)# 运行主事件循环
root.mainloop()
3 程序测试
运行界面如下:
 
按下"提交"按键结果如下:
 
相关文章:
 
基于Python制作一个简易UI界面
基于Python制作一个简易UI界面 目录 基于Python制作一个简易UI界面1 原理简介2 编写程序3 程序测试 1 原理简介 这里用到了Python自带的UI库tkinter。 tkinter 是 Python 的标准 GUI(图形用户界面)库,用于创建和管理图形界面。它提供了一个简…...
 
鲁菜大师程伟华到访金宫川派味业
共工新闻社11月29日电(范琦)上周,中国鲁菜大师、首批中国烹饪大师名厨程伟华到访金宫川派味业总部基地。这位从厨51年、坚持传承鲁菜的行业大师人物,深入了解了金宫川派的品牌文化,参观了金宫自动生产车间,…...
 
Linux设置jar包开机自启动
本文详细描述了如何在Linux服务器上创建并配置jar包的自启动脚本,包括编辑/etc/init.d/jar_auto.sh以设置环境变量,将jar包添加到rc.local以开机启动,以及提升脚本文件权限确保自动执行。 1、准备工作 Linux中Java的路径 项目jar包绝对路径 2…...
 
IoTDB 常见问题 QA 第一期
开始!关于 IoTDB 的 Q&A 我们将定期汇总社区讨论频繁的问题,并展开进行详细回答,通过积累常见问题“小百科”,方便大家使用 IoTDB。 Q1:WAL 堆积导致写入失败 问题及现象 集群报错: The write is rejec…...
 
【linux学习指南】linux捕捉信号
文章目录 📝前言🌠 信号捕捉的流程🌉 sigaction 🌠穿插话题-操作系统是怎么运⾏的🌉 硬件中断🌉时钟中断 🚩总结 📝前言 🌠 信号捕捉的流程 如果信号的处理动作是⽤⼾⾃定…...
git如何快速拉取已经提交的mr进行验证
参考:https://stackoverflow.com/questions/44992512/how-to-checkout-merge-request-locally-and-create-new-local-branch Pull merge request to new branch git fetch origin merge-requests/REQUESTID/head:BRANCHNAME i.e git fetch origin merge-requests/…...
 
【阿来来gis规划师工具箱说明书】h07四分标注
背景 在做arcmap的四分标注前,已经做好了二行三行的标注,以及在pro中做好了四分标注。这个四分标注做了好些版本,都达不到想要的效果。最终使用了静态标注的形式来做。 制作思路 新建两个承接标注文字的文本字段,考虑一般标注超…...
【大数据学习 | 面经】HDFS的三副本机制和编码机制
1. hdfs的三副本机制 hdfs的三副本机制是其核心特性之一,旨在确保数据的高可用性和容错性。通过将每个文件的数据块复制三个副本,并分散存储在不同的DateNode上,hdfs能够在节点故障的时候提供数据冗余和持续访问的能力。 三副本机制的工作原…...
lua-cjson 例子
apt install -y lua-cjson 安装 编辑 tmp.lua cjson require "cjson" p 666 d "23.42" payload{"d":[{"pres":..(p)..,"temp":"..(d).."}]} print("payload " .. payload) j cjson.decode(payloa…...
java面向对象知识点: 封装,构造,重载
目录 封装 封装知识点 private(私有) public(公共) 二、getter和setter方法 getter方法(访问器方法) setter方法(修改器方法) 三、封装类的设计原则 单一职责原则 高内聚性 一…...
go的math/rand随机数生成器
伪随机数生成器,默认情况下随机数种子是固定的, **注意:**固定的随机数种子每次生成的随机数都是相同的随机数序列 一、基础用法 math/rand 包提供了随机数生成的方法。常用的函数包括: rand.Int():返回一个伪随机…...
 
JiaJia-CP-1,2,3的WP(2)
一.JiaJia-CP-2 一看题目,聊天软件,用的什么聊天软件直接userassist看运行过什么程序 vol -f JiaJia_Co.raw --profileWin7SP1x64 userassist 发现Telegram.exe(小飞机) 可能性很大啊(真是个摸鱼大神) 除此之外,filescan也能看到࿰…...
 
3DMAX星空图像生成器插件使用方法详解
3DMAX星空图像生成器插件,一键生成星空或夜空的二维图像。它可用于创建天空盒子或空间场景,或作为2D艺术的天空背景。 【主要特点】 -单击即可创建星空图像或夜空。 -星数、亮度、大小、形状等参数。 -支持任何图像大小(方形)。…...
 
ROS2 系列学习教程(总目录)
ROS2Learning ROS1 系列学习教程(总目录) 一、ROS2 简介 1.1 ROS2简介及学习资源汇总 二、ROS2 基础 2.1 ROS2安装详细教程(以Humble为例) 2.2 ROS2 构建系统 colcon 介绍、安装与使用 2.3 ROS2 与 ROS1 编码方式对比 ROS2 与 ROS1 编码方式对比&am…...
 
[GKCTF 2021]签到
[GKCTF 2021]签到 wireshark跟踪http流,基本编解码,倒叙,栅栏密码 找到cat /f14g 把包里返回的字符串先hex解码,再base64解码,看到一个时间是倒叙,不含flag 继续往下面翻,可以看到cat%2Ff14g%7…...
 
Kubernetes——part11 云原生中间件上云部署 Rocketmqkafkazookeeper
Rocketmq rocketmq角色 RocketMQ由四部分构成:Producer、Consumer、Broker和NameServer 启动顺序:NameServer->Broker 为了消除单点故障,增加可靠性或增大吞吐量,可以在多台机器上部署多个nameserver和broker,并…...
ip租期到了
当IP租约到期后,会发生以下过程: 租约到期通知:在租约到期之前,DHCP客户端通常会尝试续租其IP地址。如果客户端仍然活跃并且希望继续使用相同的IP地址,它会向DHCP服务器发送一个DHCP请求(DHCPREQUEST&#…...
鸿蒙系统(harmony)支持Android应用的双框架技术架构分析
鸿蒙系统(HarmonyOS)支持 Android 应用的双框架技术架构 是为了在鸿蒙操作系统上实现对 Android 应用的兼容与支持,特别是在多设备生态下,确保不同类型的 Android 应用能够无缝运行在鸿蒙设备上。这种双框架架构使鸿蒙能够兼顾自身的原生应用生态和 Android 的广泛应用生态…...
 
面积等效原理
面积等效原理 电力电子技术中的面积等效原理主要应用在PWM(Pulse Width Modulation,脉冲宽度调制)控制技术中。 定义 面积等效原理:当冲量(即窄脉冲的面积)相等而形状不同的窄脉冲加在具有惯性的环节上时…...
 
【测试工具JMeter篇】JMeter性能测试入门级教程(四):JMeter中BeanShell内置方法使用
一、什么是BeanShell BeanShell是一种完全符合Java语法规范的脚本语言,并且又拥有自己的一些语法和方法;BeanShell是一种松散类型的脚本语言(这点和JS类似);BeanShell是用Java写成的,一个小型的、免费的、可以下载的、嵌入式的Java源代码解释器,具有对象脚本语言特性,非常精简…...
基于大模型的 UI 自动化系统
基于大模型的 UI 自动化系统 下面是一个完整的 Python 系统,利用大模型实现智能 UI 自动化,结合计算机视觉和自然语言处理技术,实现"看屏操作"的能力。 系统架构设计 #mermaid-svg-2gn2GRvh5WCP2ktF {font-family:"trebuchet ms",verdana,arial,sans-…...
 
23-Oracle 23 ai 区块链表(Blockchain Table)
小伙伴有没有在金融强合规的领域中遇见,必须要保持数据不可变,管理员都无法修改和留痕的要求。比如医疗的电子病历中,影像检查检验结果不可篡改行的,药品追溯过程中数据只可插入无法删除的特性需求;登录日志、修改日志…...
 
Swift 协议扩展精进之路:解决 CoreData 托管实体子类的类型不匹配问题(下)
概述 在 Swift 开发语言中,各位秃头小码农们可以充分利用语法本身所带来的便利去劈荆斩棘。我们还可以恣意利用泛型、协议关联类型和协议扩展来进一步简化和优化我们复杂的代码需求。 不过,在涉及到多个子类派生于基类进行多态模拟的场景下,…...
Qt Http Server模块功能及架构
Qt Http Server 是 Qt 6.0 中引入的一个新模块,它提供了一个轻量级的 HTTP 服务器实现,主要用于构建基于 HTTP 的应用程序和服务。 功能介绍: 主要功能 HTTP服务器功能: 支持 HTTP/1.1 协议 简单的请求/响应处理模型 支持 GET…...
 
第 86 场周赛:矩阵中的幻方、钥匙和房间、将数组拆分成斐波那契序列、猜猜这个单词
Q1、[中等] 矩阵中的幻方 1、题目描述 3 x 3 的幻方是一个填充有 从 1 到 9 的不同数字的 3 x 3 矩阵,其中每行,每列以及两条对角线上的各数之和都相等。 给定一个由整数组成的row x col 的 grid,其中有多少个 3 3 的 “幻方” 子矩阵&am…...
 
vue3+vite项目中使用.env文件环境变量方法
vue3vite项目中使用.env文件环境变量方法 .env文件作用命名规则常用的配置项示例使用方法注意事项在vite.config.js文件中读取环境变量方法 .env文件作用 .env 文件用于定义环境变量,这些变量可以在项目中通过 import.meta.env 进行访问。Vite 会自动加载这些环境变…...
 
Redis数据倾斜问题解决
Redis 数据倾斜问题解析与解决方案 什么是 Redis 数据倾斜 Redis 数据倾斜指的是在 Redis 集群中,部分节点存储的数据量或访问量远高于其他节点,导致这些节点负载过高,影响整体性能。 数据倾斜的主要表现 部分节点内存使用率远高于其他节…...
MySQL 部分重点知识篇
一、数据库对象 1. 主键 定义 :主键是用于唯一标识表中每一行记录的字段或字段组合。它具有唯一性和非空性特点。 作用 :确保数据的完整性,便于数据的查询和管理。 示例 :在学生信息表中,学号可以作为主键ÿ…...
Vite中定义@软链接
在webpack中可以直接通过符号表示src路径,但是vite中默认不可以。 如何实现: vite中提供了resolve.alias:通过别名在指向一个具体的路径 在vite.config.js中 import { join } from pathexport default defineConfig({plugins: [vue()],//…...
嵌入式常见 CPU 架构
架构类型架构厂商芯片厂商典型芯片特点与应用场景PICRISC (8/16 位)MicrochipMicrochipPIC16F877A、PIC18F4550简化指令集,单周期执行;低功耗、CIP 独立外设;用于家电、小电机控制、安防面板等嵌入式场景8051CISC (8 位)Intel(原始…...
