本文目录一览:
使用Tkinter的Python实时货币转换器
Python为开发GUI(图形用户界面)提供了多种选项。在所有的GUI方法中,tkinter是最常用的方法。它是Python附带的Tk GUI工具包的标准Python接口。Python with tkinter是创建GUI应用程序的最快和最简单的方法。
创建一个tkinter:
1)导入模块tkinter
2)创建主窗口(容器)
3)将任意数量的小部件添加到主窗口。
4)将事件触发器应用于小部件。
让我们创建一个基于GUI的简单实时货币转换器,该转换器可以将金额从一种货币转换为另一种货币。
所需模块:
tkinterrequestsjson
下面是实现:
# import all functions from the tkinter from tkinter import * # Create a GUI window root = Tk() # create a global variables variable1 = StringVar(root) variable2 = StringVar(root) # initialise the variables variable1.set("currency") variable2.set("currency") # Function to perform real time conversion # from one currency to another currency def RealTimeCurrencyConversion(): # importing required libraries import requests, json # currency code from_currency = variable1.get() to_currency = variable2.get() # enter your api key here api_key = "Your_Api_Key" # base_url variable store base url base_url = r"/d/file/gt/2023-12/irpkedfsi1a = CURRENCY_EXCHANGE_RATE" # main_url variable store complete url main_url = base_url + "&from_currency =" + from_currency + "&to_currency =" + to_currency + "&apikey =" + api_key # get method of requests module # return response object req_ob = requests.get(main_url) # json method return json format # data into python dictionary data type. # result contains list of nested dictionaries result = req_ob.json() # parsing the required information Exchange_Rate = float(result["Realtime Currency Exchange Rate"] ['5. Exchange Rate']) # get method of Entry widget # returns current text as a # string from text entry box. amount = float(Amount1_field.get()) # calculation for the conversion new_amount = round(amount * Exchange_Rate, 3) # insert method inserting the # value in the text entry box. Amount2_field.insert(0, str(new_amount)) # Function for clearing the Entry field def clear_all() : Amount1_field.delete(0, END) Amount2_field.delete(0, END) # Driver code if __name__ == "__main__" : # Set the background colour of GUI window root.configure(background = 'light green') # Set the configuration of GUI window (WidthxHeight) root.geometry("400x175") # Create welcome to Real Time Currency Convertor label headlabel = Label(root, text = 'welcome to Real Time Currency Convertor', fg = 'black', bg = "red") # Create a "Amount :" label label1 = Label(root, text = "Amount :", fg = 'black', bg = 'dark green') # Create a "From Currency :" label label2 = Label(root, text = "From Currency", fg = 'black', bg = 'dark green') # Create a "To Currency: " label label3 = Label(root, text = "To Currency :", fg = 'black', bg = 'dark green') # Create a "Converted Amount :" label label4 = Label(root, text = "Converted Amount :", fg = 'black', bg = 'dark green') # grid method is used for placing # the widgets at respective positions # in table like structure . headlabel.grid(row = 0, column = 1) label1.grid(row = 1, column = 0) label2.grid(row = 2, column = 0) label3.grid(row = 3, column = 0) label4.grid(row = 5, column = 0) # Create a text entry box # for filling or typing the information. Amount1_field = Entry(root) Amount2_field = Entry(root) # ipadx keyword argument set width of entry space. Amount1_field.grid(row = 1, column = 1, ipadx ="25") Amount2_field.grid(row = 5, column = 1, ipadx ="25") # list of currency codes CurrenyCode_list = ["INR", "USD", "CAD", "CNY", "DKK", "EUR"] # create a drop down menu using OptionMenu function # which takes window name, variable and choices as # an argument. use * befor the name of the list, # to unpack the values FromCurrency_option = OptionMenu(root, variable1, *CurrenyCode_list) ToCurrency_option = OptionMenu(root, variable2, *CurrenyCode_list) FromCurrency_option.grid(row = 2, column = 1, ipadx = 10) ToCurrency_option.grid(row = 3, column = 1, ipadx = 10) # Create a Convert Button and attached # with RealTimeCurrencyExchangeRate function button1 = Button(root, text = "Convert", bg = "red", fg = "black", command = RealTimeCurrencyConversion) button1.grid(row = 4, column = 1) # Create a Clear Button and attached # with delete function button2 = Button(root, text = "Clear", bg = "red", fg = "black", command = clear_all) button2.grid(row = 6, column = 1) # Start the GUI root.mainloop()
输出: