GUI – tkinter

#Program11

#Exploring simple shapes(lines, rectangle and fill) with canvas
from tkinter import *

mainWin = Tk()
myCanvas = Canvas(mainWin,width=200,height=150)
myCanvas.pack()

myBlackLine = myCanvas.create_line(0,0,200,50) #(x1,y1,x2,y2) points
myRedLine = myCanvas.create_line(0,100,200,50, fill='red')
myGreenBox = myCanvas.create_rectangle(25,25,130,60,fill='green') #(x,y,width,height)

#myCanvas.delete(myRedLine)
#myCanvas.delete(ALL)

mainWin.mainloop()

#Program10

#Exploring messagebox and askquestion 
from tkinter import *
import tkinter.messagebox

mainWin = Tk()
tkinter.messagebox.showinfo('Window Title', 'Turtles can live upto 200 years')
myAnswer = tkinter.messagebox.askquestion('Question 1', 'Do you know this question is stupid ?')
if myAnswer == 'yes':
    print('You are stupid too')
else:
    print('You are so wierd')
mainWin.mainloop()

#Program9

#Exploring Menu, submenu and seperators, toolbar and statusbar

from tkinter import *

def doNothing1():
    print('Do Nothing Function 1')
def doNothing2():
    print('Stupid Nothing Function 2')
def printFunc():
    print('This Function can PRINT')
def insertFunc():
    print('This help to insert')

mainWin = Tk()

#######     Menu bar is here
mainMenu = Menu(mainWin)
mainWin.config(menu=mainMenu)

fileSubMenu = Menu(mainMenu)
editSubMenu = Menu(mainMenu)

mainMenu.add_cascade(label ='File', menu=fileSubMenu)
fileSubMenu.add_command(label='ONE',command=doNothing1)
fileSubMenu.add_command(label='TWO',command=doNothing2)
fileSubMenu.add_separator()
fileSubMenu.add_command(label='QUIT',command=mainWin.quit)


mainMenu.add_cascade(label='Edit', menu=editSubMenu)
editSubMenu.add_command(label='Redo',command=doNothing1)
editSubMenu.add_command(label='Undo',command=doNothing2)


#######     Toolbar is here
toolbar = Frame(mainWin,bg='blue')
insertButton = Button(toolbar,text='Insert Image',command=insertFunc)
printButton = Button(toolbar,text='Print Screen',command=printFunc)
insertButton.pack(padx=2,pady=2,side=LEFT)
printButton.pack(padx=2,pady=2,side=LEFT)

toolbar.pack(side=TOP,fill=X)

######      StatusBar is here
myStatus = Label(mainWin,text='Preparing to do nothing...',bd=1,relief='sunken',anchor=W)
myStatus.pack(side=BOTTOM,fill=X)

mainWin.mainloop()

 

#Program8

# Using Classes
from tkinter import *

class SauravButtons:
    def __init__(self,master):
        myFrame = Frame(master)
        myFrame.pack()

        printButton = Button(myFrame,text='Print Button is here',command=self.printFunc)
        quitButton = Button(myFrame,text='This Will Quit',command=quit)
        printButton.pack()
        quitButton.pack()

    def printFunc(self):
        print('I am Printing now')

mainWin = Tk()
s = SauravButtons(mainWin)
mainWin.mainloop()

#Program7

#Mouse Click Events
from tkinter import *

mainWin = Tk()

def leftClick(event):
    print('Left click pressed')
def rightClick(event):
    print('right click pressed')
def scrollClick(event):
    print('scroll click pressed')

myFrame = Frame(mainWin,width=300,height=500)
myFrame.bind('<Button-1>',leftClick)
myFrame.bind('<Button-2>',scrollClick)
myFrame.bind('<Button-3>',rightClick)
myFrame.pack()
mainWin.mainloop()

#Program6

#binding function to layout
from tkinter import *

mainWin = Tk()
# Method 1
# def printFunc1():
#     print('Print funcion called, i am printing...')
# button1 = Button(mainWin,text='Click Me',command=printFunc1)
# button1.grid()

# Method2
def printFunc2(event):
    print('Print method called ...')
button2 = Button(mainWin,text='Print Button')
button2.bind('<Button-1>',printFunc2)   
#<Button-1> : Left mouse click. So we are binding the function printFunc2 to button2 on left mouse click 
button2.grid()
mainWin.mainloop()

#Program5

#Understanding Sticky, Checkbox and fg-bg
from tkinter import *

mainWin = Tk()
label1 = Label(mainWin,text='label ONE')
label2 = Label(mainWin,text='This is label TWO')
label1.grid(row=0,sticky=E)
label2.grid(row=1,sticky=E)

nameTxt = Entry(mainWin,fg='blue')
passTxt = Entry(mainWin,fg='red')
nameTxt.grid(row=0,column=1)
passTxt.grid(row=1,column=1)

chbox = Checkbutton(mainWin,text='Keep me logged in')
chbox.grid(columnspan=2,row=2,sticky=E)

mainWin.mainloop()

#Program4

#introduction to grid layout
from tkinter import *

mainWin = Tk()
label1 = Label(mainWin,text='This is label ONE')
label2 = Label(mainWin,text='This is label TWO')
label1.grid(row=0)
label2.grid(row=1)

nameTxt = Entry(mainWin,fg='blue')
passTxt = Entry(mainWin,fg='red')
nameTxt.grid(row=0,column=1)
passTxt.grid(row=1,column=1)

mainWin.mainloop()

 

#Program3

#Pack geometry layout with side and fill
from tkinter import *

mainWin = Tk()
label1 = Label(mainWin,text='Label 1 is this one',bg='red',fg='white')
label1.pack()
label2 = Label(mainWin,text='Label 2 is crazy',bg='purple',fg='white')
label2.pack(fill=X)
label3 = Label(mainWin,text='Label 3 is this one',bg='green',fg='white')
label3.pack(side=LEFT,fill=Y)

mainWin.mainloop()

#Program2

from tkinter import *

mainWin = Tk()
topFrame = Frame(mainWin)
topFrame.pack(side=TOP)
bottomFrame = Frame(mainWin)
bottomFrame.pack(side=BOTTOM)

button1 = Button(topFrame,text='Button 1 is good',fg='green')
button1.pack(side=LEFT)
button3 = Button(topFrame,text='Button 3 is good',fg='purple')
button3.pack(side=RIGHT)
button4 = Button(topFrame,text='Button 4 is good',fg='blue')
button4.pack(side=LEFT)

button2 = Button(bottomFrame,text='Button 2 is at the bottom',fg='red')
button2.pack()
mainWin.mainloop()

#Program1

from tkinter import *

myWindow = Tk()
myWindow.title('Hello World')
myLabel = Label(myWindow,text='This is random text')
myButton = Button(myWindow,text='OOPS button',command=myWindow.quit)
# myLabel.pack()
# myButton.pack()
myLabel.grid(row=0,column=1,sticky='n')
myButton.grid(row=1,column=1,sticky='ne')
myWindow.mainloop()

 

Design a site like this with WordPress.com
Get started