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

#egsg:在同一程序中比较-计算圆的面积

以下是一个同时使用easyguipysimplegui实现的圆形面积计算程序,通过菜单让用户选择使用哪种GUI库:

import math
import easygui
import PySimpleGUI as sgdef easygui_calculator():"""使用easygui实现的版本"""title = "圆形面积计算器 (easygui版)"while True:radius = easygui.enterbox("请输入圆的半径:", title)if radius is None:  # 用户点击取消returntry:radius = float(radius)area = math.pi * radius ** 2easygui.msgbox(f"半径为 {radius} 的圆面积是:{area:.2f}", title)except ValueError:easygui.msgbox("请输入有效的数字!", "错误")def pysimplegui_calculator():"""使用PySimpleGUI实现的版本"""layout = [[sg.Text("请输入圆的半径:", font=("微软雅黑", 12))],[sg.Input(key="RADIUS", size=20, font=("微软雅黑", 12))],[sg.Button("计算", font=("微软雅黑", 12)), sg.Button("退出", font=("微软雅黑", 12))],[sg.Text("", key="RESULT", size=30, font=("微软雅黑", 12), text_color="blue")]]window = sg.Window("圆形面积计算器 (PySimpleGUI版)", layout, finalize=True)while True:event, values = window.read()if event in (sg.WIN_CLOSED, "退出"):breakif event == "计算":try:radius = float(values["RADIUS"])area = math.pi * radius ** 2window["RESULT"].update(f"结果:{area:.2f}", text_color="green")except ValueError:sg.popup_error("请输入有效的数字!", font=("微软雅黑", 12))window.close()def main_menu():"""主菜单选择界面"""choices = ["easygui版本", "PySimpleGUI版本", "退出"]title = "圆形面积计算器"choice = easygui.choicebox("请选择使用的GUI库:", title, choices)if choice == choices[0]:easygui_calculator()elif choice == choices[1]:pysimplegui_calculator()if __name__ == "__main__":main_menu()

程序特点说明:

  1. 双库集成

    • 通过菜单选择使用easygui还是PySimpleGUI
    • 两个实现完全独立,方便对比不同库的编程风格
  2. easygui版本特点

    • 使用enterbox获取输入
    • 使用msgbox显示结果
    • 简单的异常处理
  3. PySimpleGUI版本特点

    • 创建带输入框和按钮的窗口
    • 实时结果显示
    • 更美观的界面布局
    • 弹出错误提示窗口
  4. 统一菜单

    • 使用easygui的choicebox创建主菜单
    • 清晰的选项布局

使用方法:

  1. 运行程序后首先看到主菜单
  2. 选择要使用的GUI库版本
  3. 在对应界面中输入半径数值
  4. 查看计算结果

安装依赖:

pip install easygui pysimplegui

这个程序完美实现了两个GUI库的集成,保持了代码的清晰结构,同时让用户可以直观地对比两种不同的GUI编程方式。

http://www.hskmm.com/?act=detail&tid=8569

相关文章:

  • 282 项多模态胃肠病学数据集:适配 VLM 与 MLLM 微调,融合医学图像与临床文本的医疗 AI 训练数据
  • 2-sat板子
  • centos 7中安装jenkins
  • pythonjs逆向 破解滑动验证码 - hello-*
  • 解决 pandas.to_csv 乱码、丢失行和自动换行问题 时间转换
  • JavaDay7
  • 前端场景题笔记
  • P3934 [Ynoi Easy Round 2016] 炸脖龙 I 做题记录
  • 【CompletableFuture 核心操作全解】详细注释版
  • 关于学术不端的一些思考
  • python基础-字典
  • pod 内nslookup请求时常异常
  • 单调队列优化DP
  • 4.5.11版本闪亮登场~快来看看有哪些新功能
  • 教你数分钟内创建并运行一个 DolphinScheduler Workflow!
  • AT_agc065_b [AGC065B] Erase and Insert
  • 《大模型时代——智能体的崛起与应用实践(微课视频版)》
  • 第三节:GoLangChain提示词(Prompts)处理详解
  • rhel8 中vdo 邏輯卷的邏輯擴容
  • Codeforces Round 1051 (Div. 2) 部分题解
  • kingbase金仓数据库的密码有效期和密码复杂度
  • HDF5文件
  • Error encountered when performing Introspect the Portion of idea Introspect using JDBC metadata在哪设置
  • 核桃 CSP-S 模拟
  • 正确输入连字号、连接号、破折号和负号
  • 9 月记录
  • python基础-元组
  • .net core中获得程序集以及注入框架的方法总结
  • python基础篇-list(列表)
  • vscode使用powershell中文乱码