Python | Real time currency convertor using Tkinter - GeeksforGeeks

09 Jun, 2021
Prerequisites : Introduction to tkinter | Get the real time currency exchange ratePython offers multiple options for developing GUI (Graphical User Interface). Out of all the GUI methods, tkinter is the most commonly used method. It is a standard Python interface to the Tk GUI toolkit shipped with Python. Python with tkinter outputs the fastest and easiest way to create the GUI applications. 
To create a tkinter : 
Importing the module – tkinter
Create the main window (container)
Add any number of widgets to the main window.
Apply the event Trigger on the widgets.
Let’s create a GUI based simple Real-time currency convertor (Using Alpha Vantage API) which can convert amounts from one currency to another currency.
Modules required:  
tkinter
requests
json
Below is the implementation : 
Python3
# import all functions from the tkinterfrom tkinter import * # Create a GUI windowroot = Tk() # create a global variablesvariable1 = StringVar(root)variable2 = StringVar(root) # initialise the variablesvariable1.set("currency")variable2.set("currency")      # Function to perform real time conversion# from one currency to another currencydef 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"https://www.alphavantage.co/query?function = 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 fielddef clear_all() :    Amount1_field.delete(0, END)    Amount2_field.delete(0, END)     # Driver codeif __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 * before 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()
Output :  
 
 
simmytarika5
python-utility
Technical Scripter 2018
Project
Python
Technical Scripter
Writing code in comment?
Please use ide.geeksforgeeks.org,
generate link and share the link here.
SDE SHEET - A Complete Guide for SDE Preparation
Java Swing | Simple User Registration Form
Twitter Sentiment Analysis using Python
OpenCV C++ Program for Face Detection
Banking Transaction System using Java
Read JSON file using Python
Adding new column to existing DataFrame in Pandas
Python map() function
How to get column names in Pandas dataframe