基於介面的測試工具研發:使用GUI設計簡易計算器

zou75718發表於2020-09-26
#使用物件導向思想研發簡易計算器
#匯入相關的類庫檔案
import wx
class cal_GUI():
    # 類的初始化方法,建立所有的控制元件
    def __init__(self):
        self.app=wx.App()
        self.window=wx.Frame(None,title="計算器",size=(600,500))
        self.panel=wx.Panel(self.window)
        #建立文字框
        self.txtNuml=wx.TextCtrl(self.panel)
        self.txtOperator=wx.TextCtrl(self.panel)
        self.txtNum2=wx.TextCtrl(self.panel)
        self.txtResult=wx.TextCtrl(self.panel)
        #建立按鈕控制元件
        self.equal=wx.Button(self.panel,label="=")
    def boxsizer(self):
        #設定一個水平的BoxSizer
        boxsizer1=wx.BoxSizer(wx.HORIZONTAL)
        #把3個文字框加入BoxSize1中
        boxsizer1.Add(self.txtNuml,proportion=1,flag=wx.LEFT,border=8)
        boxsizer1.Add(self.txtOperator,proportion=0,flag=wx.LEFT,border=8)
        boxsizer1.Add(self.txtNum2,proportion=1,flag=wx.LEFT|wx.RIGHT,border=8)
        #設定一個垂直的BoxSizer
        boxsizer2=wx.BoxSizer(wx.VERTICAL)
        boxsizer2.Add(boxsizer1,flag=wx.TOP|wx.EXPAND,border=8)
        boxsizer2.Add(self.equal,flag=wx.TOP|wx.EXPAND|wx.LEFT|wx.RIGHT|wx.BOTTOM,border=8)
        boxsizer2.Add(self.txtResult,proportion=1,flag=wx.EXPAND|wx.LEFT|wx.RIGHT|wx.BOTTOM,border=8)
        #讓boxsizer生效
        self.panel.SetSizer(boxsizer2)

    def cal_event(self,event):
        #獲取控制元件中輸入的內容
        num1=self.txtNuml.GetValue()
        Operator=self.txtOperator.GetValue()
        num2=self.txtNum2.GetValue()
        #根據運算子進行運算處理
        if Operator=="+":
            r=float(num1)+float(num2)
        elif Operator=="-":
            r=float(num1)-float(num2)
        elif Operator=="*":
            r=float(num1)*float(num2)
        elif Operator=="/":
            r=float(num1)/float(num2)
        else:
            print("錯誤")

        # 將輸出資料放入結果文字框中
        self.txtResult.SetValue(str(r))

    #將"="按鈕和運算事件繫結
    def bind_set(self):
        self.equal.Bind(wx.EVT_BUTTON,self.cal_event)

    def run(self):
        # 啟用窗體
        self.window.Show(True)
        #執行APP
        self.app.MainLoop()
if __name__ == '__main__':
    cal_GUI_obj=cal_GUI()
    cal_GUI_obj.boxsizer()
    cal_GUI_obj.bind_set()
    cal_GUI_obj.run()

在這裡插入圖片描述
在這裡插入圖片描述

相關文章