#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()