当前位置: 首页 > news >正文

基于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 程序测试

运行界面如下:
在这里插入图片描述

按下"提交"按键结果如下:
在这里插入图片描述

http://www.lryc.cn/news/494648.html

相关文章:

  • 鲁菜大师程伟华到访金宫川派味业
  • Linux设置jar包开机自启动
  • IoTDB 常见问题 QA 第一期
  • 【linux学习指南】linux捕捉信号
  • git如何快速拉取已经提交的mr进行验证
  • 【阿来来gis规划师工具箱说明书】h07四分标注
  • 【大数据学习 | 面经】HDFS的三副本机制和编码机制
  • lua-cjson 例子
  • java面向对象知识点: 封装,构造,重载
  • go的math/rand随机数生成器
  • JiaJia-CP-1,2,3的WP(2)
  • 3DMAX星空图像生成器插件使用方法详解
  • ROS2 系列学习教程(总目录)
  • [GKCTF 2021]签到
  • Kubernetes——part11 云原生中间件上云部署 Rocketmqkafkazookeeper
  • ip租期到了
  • 鸿蒙系统(harmony)支持Android应用的双框架技术架构分析
  • 面积等效原理
  • 【测试工具JMeter篇】JMeter性能测试入门级教程(四):JMeter中BeanShell内置方法使用
  • 大小写转换
  • 手机镜头组如此突出,考虑恢复以前设计
  • 浅谈人工智能之基于容器云进行图生视频大模型搭建
  • 大型复杂项目管理怎么结合传统与敏捷
  • 家校通小程序实战教程04教师管理
  • UI控件使用说明
  • 树莓派2安装jupyterlab以便更好的编程体验
  • 计算机网络常见面试题总结(上)
  • k8s 亲和性之Affinity
  • SpringBoot 插件化开发模式
  • 基于树莓派的安保巡逻机器人--项目介绍