Python offers multiple options for developing a 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 is the fastest and easiest way to create GUI applications. In this article, we will learn how to open an external program using Tkinter. Here we will use the system() method in the os module.
Approach:
- First, we will import the required library
- Then we create an object, which will ask for a file that you want to open
- To open that file we will use the system() method from the os Module.
Syntax:
os.system(‘”%s”‘ % File Path)
Below is the Implementation:
# Import Library from tkinter import *
import os
from tkinter.filedialog import askopenfilename
# Create Object root = Tk()
# Set geometry root.geometry( '200x200' )
def open_file():
file = askopenfilename()
os.system( '"%s"' % file )
Button(root, text = 'Open' ,
command = open_file).pack(side = TOP,
pady = 10 )
# Execute Tkinter root.mainloop() |
Output:
Opening application with their name
Prerequisite: Tkinter, AppOpener
The AppOpener is the python library that helps in opening any application without knowing it’s an absolute path. The library works by making use of App name and App Id.
Approach:
- First, we will import the required library.
- Then we create a text area, which takes the input of the application name that we have to open.
- To open that specific application we will use open() function of AppOpener module.
Syntax:
AppOpener.open(app_name)
Below is the Implementation:
import tkinter as tk
# Library used to open applications import AppOpener
# Create Object root = tk.Tk()
# Set geometry root.geometry( "500x500" )
# Create the text area text_area = tk.Text(root, height = 10 , width = 30 , font = ("", 20 ))
text_area.pack() # Autofocus cursor in text area text_area.focus() # Create the button button = tk.Button(root, text = "Open App" , font = ("", 20 ))
button.pack() # Create the label label = tk.Label(root, text = " ", font=(" ", 15 ))
label.pack() label.config(text = "JUST ENTER NAME OF APPLICATION TO OPEN" )
def open_app(event):
# Get application name
app_name = text_area.get( "1.0" , "end" )
# Open application
AppOpener. open (app_name)
# Change the label accordingly
label.config(text = str ( "Looking for " + app_name))
text_area.delete( "1.0" , "end" )
# Bind the button to the function button.bind( "<Button-1>" , open_app)
root.mainloop() |
Output: