要求基于wxPython图形用户界面,开发实现如下程序:1. 模拟计算器程序: 要求:至少能计算两数加法和减法(不要求乘除等复杂运算),在界面内输入两数字,点击计算按钮,在界面内给出计算结果。
时间: 2024-02-15 21:05:50 浏览: 85
好的,以下是一个基于 wxPython 的简单计算器示例程序:
```
import wx
class CalculatorFrame(wx.Frame):
def __init__(self):
wx.Frame.__init__(self, None, title='Calculator', size=(300, 150))
# 创建界面控件
panel = wx.Panel(self)
input1_label = wx.StaticText(panel, label='Number 1:', pos=(20, 20))
self.input1_text = wx.TextCtrl(panel, pos=(100, 20))
input2_label = wx.StaticText(panel, label='Number 2:', pos=(20, 50))
self.input2_text = wx.TextCtrl(panel, pos=(100, 50))
add_button = wx.Button(panel, label='Add', pos=(20, 90))
sub_button = wx.Button(panel, label='Subtract', pos=(100, 90))
self.result_label = wx.StaticText(panel, label='', pos=(190, 90))
# 绑定事件处理函数
self.Bind(wx.EVT_BUTTON, self.on_add, add_button)
self.Bind(wx.EVT_BUTTON, self.on_subtract, sub_button)
def on_add(self, event):
try:
num1 = float(self.input1_text.GetValue())
num2 = float(self.input2_text.GetValue())
result = num1 + num2
self.result_label.SetLabel('Result: %.2f' % result)
except ValueError:
self.result_label.SetLabel('Invalid input')
def on_subtract(self, event):
try:
num1 = float(self.input1_text.GetValue())
num2 = float(self.input2_text.GetValue())
result = num1 - num2
self.result_label.SetLabel('Result: %.2f' % result)
except ValueError:
self.result_label.SetLabel('Invalid input')
if __name__ == '__main__':
app = wx.App()
frame = CalculatorFrame()
frame.Show()
app.MainLoop()
```
在上面的示例程序中,我们创建了一个名为 `CalculatorFrame` 的 wxPython 窗口类。在该窗口中,我们添加了两个文本框用于输入数字,两个按钮用于执行加法和减法运算,以及一个标签用于显示计算结果。
在按钮点击事件处理函数中,我们获取输入的两个数字并执行相应的运算。如果输入无效,则在标签中显示错误信息。
希望这个示例程序能够帮助您实现一个简单的 wxPython 计算器。
阅读全文