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

    运行界面如下:

    按下"提交"按键结果如下:

    作者:柒壹漆

    物联沃分享整理
    物联沃-IOTWORD物联网 » 基于Python制作一个简易UI界面

    发表回复