python -tkinter 汇率转换程序

testgui.py 

from ccapp import CCApp
from gui import GUIInterface

inter=GUIInterface()
cc=CCApp(inter)
cc.run()

gui.py

# -*- codeing: utf-8 -*-
from tkinter import *
class GUIInterface:
    def __init__(self):
        self.root=Tk()
        self.root.title("Currency Converter")
        
        self.qFlag=False
        self.fc=StringVar()
        self.fc.set('USD')
        self.to='RMB'
        self.amt=0
        self.aRMB=StringVar()
        self.aRMB.set('0.00')
        self.aFC=StringVar()
        self.aFC.set('0.00')

        Label(self.root,textvariable=self.fc).grid(row=0,column=0,sticky=W) #sticky
        Label(self.root,text='RMB').grid(row=0,column=2,sticky=W)
        self.e1=Entry(self.root,textvariable=self.aFC)
        self.e1.grid(row=1,column=0,rowspan=2)
        self.e2=Entry(self.root,textvariable=self.aRMB)
        self.e2.grid(row=1,column=2,rowspan=2)
        self.b1=Button(self.root,text='----->',command=self.toRMB)
        self.b1.grid(row=1,column=1)
        self.b2=Button(self.root,text='<-----',command=self.toFC)
        self.b2.grid(row=2,column=1)
        
        self.f=Frame(self.root)
        self.f.grid(row=3,column=0,columnspan=3)
        self.r1=Radiobutton(self.f,text='USD',variable=self.fc,value='USD')
        self.r1.grid(row=0,column=0)
        self.r2=Radiobutton(self.f,text='Euro',variable=self.fc,value='Euro')
        self.r2.grid(row=0,column=1)        
        self.r3=Radiobutton(self.f,text='Yen',variable=self.fc,value='Yen')
        self.r3.grid(row=0,column=2)       
        self.r4=Radiobutton(self.f,text='Pound',variable=self.fc,value='Pound')
        self.r4.grid(row=0,column=3)
        
        self.rate=Button(self.root,text='Update Rates')
        self.rate.grid(row=4,column=1)
        self.qb=Button(self.root,text='Quit',command=self.close)
        self.qb.grid(row=5,column=1)
    
    def getInfo(self):
        self.root.mainloop()
        return self.qFlag,self.fc.get(),self.to,self.amt
    
    def showInfo(self,r):
        rStr="%.2f" % r
        if self.to=='RMB':
            self.aRMB.set(rStr)
        else:
            self.aFC.set(rStr)
    
    def toRMB(self):
        self.to='RMB'
        self.amt=eval(self.aFC.get())
        self.root.quit()
    
    def toFC(self):
        self.to=self.fc.get()
        self.amt=eval(self.aRMB.get())
        self.root.quit()       
        
    def close(self):
        self.qFlag=True
        self.root.quit() 
        self.root.destroy()    
        
            
        #p314
        

if __name__ == '__main__':
    pass

ccapp.py

# -*- coding: utf-8 -*-
#汇率模型
class CCApp:
    def __init__(self,inter): #代表用户界面inter
        self.xRate={'USD':6.306,'Euro':8.2735,'Yen':0.0775,'Pound':10.0486}
        self.interface = inter
    def run(self):
        while True:
            byeqFlag,fc,to,amount = self.interface.getInfo()
            if byeqFlag:  
                break
            elif to == 'RMB':
                result = amount * self.xRate[fc]
            else:
                result = amount / self.xRate[fc]
            self.interface.showInfo(result)  

        
def main():
    cp=CCApp()
    cp.run()

if __name__ == '__main__':
    main()
    pass

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值