使用wxpython设计一个基于用户界面的模拟计算器程序,主要功能是至少能计算两数加法和减法(不要求乘除等复杂运算)并在界面上显示设计者的学号和姓名,在界面内输入两数字,点击计算按钮,在界面内给出计算结果
时间: 2024-02-11 20:09:36 浏览: 70
好的,我会尽力回答你的问题。
首先,我们需要安装wxPython库,然后就可以开始设计我们的模拟计算器程序。
以下是一个基本的程序框架,可以实现加法和减法:
```python
import wx
class Calculator(wx.Frame):
def __init__(self, parent, title):
super(Calculator, self).__init__(parent, title=title, size=(320, 240))
# 添加姓名和学号标签
self.name_label = wx.StaticText(self, label="姓名:XXX", pos=(10, 10))
self.id_label = wx.StaticText(self, label="学号:XXXXX", pos=(10, 30))
# 添加输入框和计算按钮
self.num1_text = wx.TextCtrl(self, pos=(10, 60))
self.num2_text = wx.TextCtrl(self, pos=(10, 90))
self.add_button = wx.Button(self, label="加法", pos=(10, 120))
self.sub_button = wx.Button(self, label="减法", pos=(90, 120))
# 添加结果标签
self.result_label = wx.StaticText(self, label="", pos=(10, 150))
# 绑定事件处理函数
self.add_button.Bind(wx.EVT_BUTTON, self.OnAdd)
self.sub_button.Bind(wx.EVT_BUTTON, self.OnSub)
self.Centre()
self.Show()
def OnAdd(self, event):
num1 = int(self.num1_text.GetValue())
num2 = int(self.num2_text.GetValue())
result = num1 + num2
self.result_label.SetLabel("计算结果:{}".format(result))
def OnSub(self, event):
num1 = int(self.num1_text.GetValue())
num2 = int(self.num2_text.GetValue())
result = num1 - num2
self.result_label.SetLabel("计算结果:{}".format(result))
if __name__ == '__main__':
app = wx.App()
Calculator(None, title='模拟计算器')
app.MainLoop()
```
在这个程序中,我们首先创建了一个`Calculator`类,继承自`wx.Frame`。在`__init__`方法中,我们添加了姓名和学号标签、两个输入框、计算按钮和结果标签,并将它们放置在窗口上的不同位置。
然后,我们绑定了两个按钮的事件处理函数`OnAdd`和`OnSub`,分别实现加法和减法。在这些函数中,我们首先获取输入框中的两个数字,然后计算结果,并在结果标签中显示出来。
最后,在`if __name__ == '__main__'`中,我们创建了一个`wx.App`对象,并用它来启动我们的程序。当用户点击关闭按钮时,`wx.App`对象会自动退出程序。
注意,这个程序只是一个基本的框架,你可以根据自己的需要进行修改和扩展。例如,你可以添加乘法、除法等功能,或者美化界面,让它看起来更加漂亮。
阅读全文