You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用Python实现支持用户自定义函数的GUI计算器?

自定义GUI计算器实现方案

核心需求

开发一款带GUI的自定义计算器,支持以下功能:

  • 通过滑块组件设置两个整数参数
  • 在文本区域输入自定义Python函数(需接收两个参数并返回计算结果)
  • 点击计算按钮后,将参数传入自定义函数并输出计算结果

完整实现代码

import ipywidgets as widgets
from IPython.display import display

# 初始化GUI组件
argument1 = widgets.IntSlider(min=0, max=100, value=3, description='参数1:')
argument2 = widgets.IntSlider(min=0, max=100, value=4, description='参数2:')
userDefinedFunction = widgets.TextArea(
    value='def udf(arg1, arg2):\n    return arg1**2 + arg2**2',
    placeholder='请输入自定义函数,格式为 def udf(arg1, arg2): ...',
    description='自定义函数:',
    layout={'height': '100px'}
)
calculateButton = widgets.Button(description='计算')
result_output = widgets.Output()

# 计算按钮点击事件逻辑
def on_calculate_click(b):
    with result_output:
        result_output.clear_output()
        try:
            # 执行用户定义的函数代码
            exec(userDefinedFunction.value)
            # 调用函数并传入滑块参数
            calculation_result = udf(argument1.value, argument2.value)
            print(f"计算结果: {calculation_result}")
            print(f"计算过程: {argument1.value} × {argument1.value} + {argument2.value} × {argument2.value} = {calculation_result}")
        except Exception as e:
            print(f"执行错误: {str(e)}")

# 绑定按钮点击事件
calculateButton.on_click(on_calculate_click)

# 渲染所有GUI组件
display(argument1, argument2, userDefinedFunction, calculateButton, result_output)

代码说明

  • 组件设计:使用ipywidgets库构建界面,包括两个整数滑块、函数输入文本框、计算按钮和结果输出区域
  • 事件处理:点击计算按钮时,通过exec执行用户输入的函数定义,随后调用该函数并传入滑块的当前值
  • 错误处理:捕获函数定义错误、参数不匹配等异常,避免程序崩溃并给出错误提示
  • 结果展示:在输出区域打印计算结果和过程,每次计算前清空历史输出

示例运行效果

当设置以下内容时:

  • argument1 = 3(滑块拖动到3)
  • argument2 = 4(滑块拖动到4)
  • 自定义函数输入:def udf(arg1,arg2): return arg1**2 + arg2**2

点击计算按钮后,输出区域将显示:

计算结果: 25
计算过程: 3 × 3 + 4 × 4 = 25

内容的提问来源于stack exchange,提问作者Curious

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.09 17:45:31