Assignment

Download as pdf or txt
Download as pdf or txt
You are on page 1of 12

Department of Management Information Systems

Faculty of Business Studies


University of Dhaka
BBA Program 25th Batch

Course Name: Programming for IS (305)

Submitted To:
Md. Rakibul Hasan
Assistant Professor
Department of Management Information Systems
Faculty of Business Studies
University of Dhaka

Submitted By:
Akhi Kulsum Shifa
029-14-102
Section: B

Date of Submission: 26 April, 2022


In [3]: from tkinter import * #Listing 9.1

window=Tk()
label=Label(window, text="Welcome to Python")
button=Button(window,text="Click Me")
label.pack ()
button.pack()

window.mainloop()

In [ ]: from tkinter import* #Listing 9.2


def processOK():
print("OK button is clicked")
def processCancel():
print("Cancel button is clicked")

window=Tk()
btOK=Button(window,text="OK",fg="red",command=processOK)
btCancel=Button(window,text="Cancel",bg="yellow",command=processCancel)
btOK.pack()
btCancel.pack()
window.mainloop()

In [ ]: from tkinter import* #Listing 9.3

class ProcessButtonEvent:
def __init__(self):
window=Tk()
btOK =Button(window,text="OK",fg="red",
command=self.processOK)
btCancel=Button(window,text="Cancel",bg="yellow"
,command=self.processCancel)
btOK.pack()
btCancel.pack()
window.mainloop()
def processOK(self):
print("OK button is clicked")
def processCancel(self):
print("Cancel button is clicked")
ProcessButtonEvent()
In [ ]: from tkinter import* #Listing 9.4
class WidgetsDemo:
def __init__(self):
window=Tk()
window.title("Widgets Demo")

frame1=Frame(window)
frame1.pack()
self.v1=IntVar()
cbtBold=Checkbutton(frame1,text="Bold",
variable=self.v1,
command=self.processCheckbutton)
self.v2=IntVar()
rbRed=Radiobutton(frame1,text="Red", bg="red",
variable=self.v2, value=1,
command=self.processRadiobutton)
rbYellow=Radiobutton(frame1,text="Yellow", bg="yellow",
variable=self.v2, value=2,
command=self.processRadiobutton)
cbtBold.grid(row=1,column=1)
rbRed.grid(row=1,column=2)
rbYellow.grid(row=1,column=3)

frame2=Frame(window)
frame2.pack()
label=Label(frame2,text="Enter your name:")
self.name=StringVar()
entryName=Entry(frame2,textvariable=self.name)
btGetName=Button(frame2,text="Get Name",command=self.processButton)
message=Message(frame2,text="It is a widgets demo")
label.grid(row=1,column=1)
entryName.grid(row=1,column=2)
btGetName.grid(row=1,column=3)
message.grid(row=1,column=4)

text=Text(window)
text.pack()
text.insert(END,"Tip\nThe Best Way to Learn Tkinter is to read")
text.insert(END," these carefully designed examples and use them")
text.insert(END,"to create your applications.")

window.mainloop()
def processCheckbutton(self):
print("check Button is" + (" checked" if self.v1.get()==1 else"unchecked"

def processRadiobutton(self):
print(("Red" if self.v2.get()==1 else "Yellow" )+" is selected")
def processButton(self):
print("Your name is " + self.name.get())
WidgetsDemo()
In [ ]: from tkinter import * #Listing 9.5

class ChangeLabelDemo:
def __init__(self):
window = Tk()
window.title("Change Label Demo")

frame1 = Frame(window)
frame1.pack()
self.lbl = Label(frame1, text = "Programming is fun")
self.lbl.pack()
frame2 = Frame(window)
frame2.pack()
label = Label(frame2, text = "Enter text: ")
self.msg = StringVar()
entry = Entry(frame2, textvariable = self.msg)
btChangeText = Button(frame2, text = "Change Text",
command = self.processButton)
self.v1 = StringVar()
rbRed = Radiobutton(frame2, text = "Red", bg = "red",
variable = self.v1, value = 'R',
command = self.processRadiobutton)
rbYellow = Radiobutton(frame2, text = "Yellow",bg = "yellow",
variable = self.v1, value = 'Y',
command = self.processRadiobutton)

label.grid(row = 1, column = 1)
entry.grid(row = 1, column = 2)
btChangeText.grid(row = 1, column = 3)
rbRed.grid(row = 1, column = 4)
rbYellow.grid(row = 1, column = 5)
window.mainloop()
def processRadiobutton(self):
if self.v1.get()== 'R':
self.lbl["fg"] = "red"
elif self.v1.get()=="Y":
self.lbl["fg"]="yellow"
def processButton(self):
self.lbl["text"]=self.msg.get()

ChangeLabelDemo()
In [ ]: from tkinter import * #Listing 9.6

class CanvasDemo:
def __init__(self):
window = Tk()
window.title("Canvas Demo")

self.canvas=Canvas(window,width=200,height=100,bg="white")
self.canvas.pack()

frame = Frame(window)
frame.pack()
btRectangle = Button(frame, text = "Rectangle",
command = self.displayRect)
btOval = Button(frame, text = "Oval",
command = self.displayOval)
btArc = Button(frame, text = "Arc",
command = self.displayArc)
btPolygon = Button(frame, text = "Polygon",
command = self.displayPolygon)
btLine = Button(frame, text = "Line",
command = self.displayLine)
btString = Button(frame, text = "String",
command = self.displayString)
btClear = Button(frame, text = "Clear",
command = self.clearCanvas)
btRectangle.grid(row = 1, column = 1)
btOval.grid(row = 1, column = 2)
btArc.grid(row = 1, column = 3)
btPolygon.grid(row = 1, column = 4)
btLine.grid(row = 1, column = 5)
btString.grid(row = 1, column = 6)
btClear.grid(row = 1, column = 7)

window.mainloop()
def displayRect(self):
self.canvas.create_rectangle(10,10,190,90,tags="rect")
def displayOval(self):
self.canvas.create_oval(10, 10, 190, 90,fill = "red",tags="oval")
def displayArc(self):
self.canvas.create_arc(10, 10, 190, 90,
start=0,extent=90,
width=8, fill = "red",tags="arc")
def displayPolygon(self):
self.canvas.create_polygon(10, 10, 190, 90,30,50,tags="polygon")
def displayLine(self):
self.canvas.create_line(10, 10, 190, 90,fill="red",tags="line")
self.canvas.create_line(10, 90, 190, 10, width=9, arrow="last",
activefill="yellow",tags="line")
def displayString(self):
self.canvas.create_text(60,40,text="Hi, I am a string",
font="Times 10 bold underline",tags="string")
def clearCanvas(self):
self.canvas.delete("rect","oval","arc","polygon","line","string")
()
In [ ]: from tkinter import * #Listing 9.7

class GridManagerDemo:
window = Tk()
window.title("Grid Manager Demo")

message = Message(window,
text = "This Message widget occupies three rows and two columns")
message.grid(row = 1, column = 1, rowspan=3 , columnspan = 2)
Label(window, text = "First Name:").grid(row = 1, column = 3)
Entry(window).grid(row = 1, column = 4, padx=5 , pady = 5)
Label(window, text = "Last Name:").grid(row = 2, column = 3)
Entry(window).grid(row = 2, column = 4)
Button(window, text = "Get Name").grid(row = 3, padx = 5,
pady = 5, column = 4,sticky=E )

window.mainloop()

GridManagerDemo()

In [ ]: from tkinter import * #Listing 9.8

class PackManagerDemo:
def __init__(self):
window = Tk()
window.title("Pack Manager Demo 1")

Label(window, text = "Blue", bg = "blue").pack()


Label(window, text = "Red", bg = "red").pack(fill=BOTH,expand=1)
Label(window, text = "Green", bg = "green").pack(fill=BOTH)

window.mainloop()
PackManagerDemo()
In [ ]: from tkinter import * #Listing 9.9

class PackManagerDemoWithSide:
window = Tk()
window.title("Pack Manager Demo 2")

Label(window, text = "Blue", bg = "blue").pack(side=LEFT )


Label(window, text = "Red", bg = "red").pack(side=LEFT,
fill = BOTH, expand = 1)
Label(window, text = "Green", bg = "green").pack(side=LEFT,
fill = BOTH)

window.mainloop()

PackManagerDemoWithSide()
In [ ]: from tkinter import * #Listing 9.10
class PlaceManagerDemo:
def __init__(self):
window = Tk()
window.title("Place Manager Demo")

Label(window, text = "Blue", bg = "blue").place(x=20,y=20)


Label(window, text = "Red", bg = "red").place(x = 50, y = 50)
Label(window, text = "Green", bg = "green").place(x = 80, y = 80)

window.mainloop()
PlaceManagerDemo()
In [2]: from tkinter import * #Listing 9.11

class LoanCalculator:
def __init__(self):

window = Tk()
window.title("Loan Calculator")

Label(window, text = "Annual Interest Rate").grid(row = 1,


column = 1, sticky = W)
Label(window, text = "Number of Years").grid(row = 2,
column = 1, sticky = W)
Label(window, text = "Loan Amount").grid(row = 3,
column = 1, sticky = W)
Label(window, text = "Monthly Payment").grid(row = 4,
column = 1, sticky = W)
Label(window, text = "Total Payment").grid(row = 5,
column = 1, sticky = W)
self.annualInterestRateVar = StringVar()
Entry(window, textvariable = self.annualInterestRateVar,
justify = RIGHT).grid(row = 1, column = 2)

self.numberOfYearsVar = StringVar()
Entry(window, textvariable = self.numberOfYearsVar,
justify = RIGHT).grid(row = 2, column = 2)

self.loanAmountVar=StringVar()
Entry(window, textvariable = self.loanAmountVar,
justify = RIGHT).grid(row = 3, column = 2)

self.monthlyPaymentVar=StringVar()
lblMonthlyPayment = Label(window,
textvariable=self.monthlyPaymentVar
).grid(row = 4,column = 2, sticky = E)

self.totalPaymentVar = StringVar()
lblTotalPayment = Label(window,
textvariable =self.totalPaymentVar
).grid(row = 5,column=2,sticky=E)

btComputePayment=Button(window,text="Compute Payemet",
command=self.computePayment).grid(row=6,column=2,sticky=E)
window.mainloop()

def computePayment(self):
monthlyPayment=self.getMonthlyPayment(
float(self.loanAmountVar.get()),
float(self.annualInterestRateVar.get())/1200,
int(self.numberOfYearsVar.get()))
self.monthlyPaymentVar.set(format(monthlyPayment,"10.2f"))
totalPayment=float(self.monthlyPaymentVar.get())*12 \
*int(self.numberOfYearsVar.get())
self.totalPaymentVar.set(format(totalPayment,"10.2f"))

def getMonthlyPayment(self,loanAmount,
monthlyInterestRate,numberOfYears):
monthlyPayment=loanAmount*monthlyInterestRate/(1-1/
(1+
monthlyInterestRate)**(numberOfYears**12))
return monthlyPayment;
LoanCalculator()
Out[2]: <__main__.LoanCalculator at 0x1f58f074708>

In [ ]: from tkinter import * #Listing 9.12


class ImageDemo:
def __init__(self):
window = Tk()
window.title("Image Demo")

caImage = PhotoImage(file = "image/ca.gif")


chinaImage = PhotoImage(file = "image/china.gif")
leftImage = PhotoImage(file = "image/left.gif")
rightImage = PhotoImage(file = "image/right.gif")
usImage = PhotoImage(file = "image/usIcon.gif")
ukImage = PhotoImage(file = "image/ukIcon.gif")
crossImage = PhotoImage(file = "image/x.gif")
circleImage = PhotoImage(file = "image/o.gif")

frame1 = Frame(window)
frame1.pack()
Label(frame1, image-caImage ).pack(side = LEFT)
canvas = Canvas(frame1)
canvas.create_image(90, 50, image = chinaImage)
canvas["width"] = 200
canvas["height"] = 100
canvas.pack(side = LEFT)

frame2 = Frame(window)
frame2.pack()
Button(frame2, image = leftImage).pack(side = LEFT)
Button(frame2, image = rightImage).pack(side = LEFT)
Checkbutton(frame2, image = usImage).pack(side = LEFT)
Checkbutton(frame2, image = ukImage).pack(side = LEFT)
Radiobutton(frame2, image = crossImage).pack(side = LEFT)
Radiobutton(frame2, image = circleImage).pack(side = LEFT)

window.mainloop()
()
In [ ]: from tkinter import * #Listing 9.13

class MenuDemo:
def __init__(self):
window = Tk()
window.title("Menu Demo")

menubar = Menu(window)
window.config(menu = menubar)

operationMenu = Menu(menubar, tearoff = 0)


menubar.add_cascade(label = "Operation", menu = operationMenu)
operationMenu.add_command(label = "Add",
command = self.add)
operationMenu.add_command(label = "Subtract",
command = self.subtract)
operationMenu.add_separator()
operationMenu.add_command(label = "Multiply",
command = self.multiply)
operationMenu.add_command(label = "Divide",
command = self.divide)

exitmenu = Menu(menubar, tearoff = 0)


menubar.add_cascade(label = "Exit", menu = exitmenu)
exitmenu.add_command(label = "Quit", command = window.quit)

frame0 = Frame(window)
frame0.grid(row = 1, column = 1, sticky = W)

plusImage = PhotoImage(file = "image/plus.gif")


minusImage = PhotoImage(file = "image/minus.gif")
timesImage = PhotoImage(file = "image/times.gif")
divideImage = PhotoImage(file = "image/divide.gif")

Button(frame0, image = plusImage,


command = self.add).grid(row = 1, column = 1, sticky = W)
Button(frame0, image = minusImage,
command = self.subtract).grid(row = 1, column = 2)
Button(frame0, image = timesImage,
command = self.multiply).grid(row = 1, column = 3)
Button(frame0, image = divideImage,
command = self.divide).grid(row = 1, column = 4)

frame1 = Frame(window)
frame1.grid(row = 2, column = 1, pady = 10)
Label(frame1, text = "Number 1:").pack(side = LEFT)
self.v1 = StringVar()
Entry(frame1, width = 5, textvariable = self.v1,
justify = RIGHT).pack(side = LEFT)
Label(frame1, text = "Number 2:").pack(side = LEFT)
self.v2 = StringVar()
Entry(frame1, width = 5, textvariable = self.v2,
justify = RIGHT).pack(side = LEFT)
Label(frame1, text = "Result:").pack(side = LEFT)
self.v3 = StringVar()
Entry(frame1, width = 5, textvariable = self.v3,
justify = RIGHT).pack(side = LEFT)

frame2 = Frame(window)
frame2.grid(row = 3, column = 1, pady = 10, sticky = E)
Button(frame2, text = "Add", command = self.add).pack(side=LEFT)

Button(frame2, text = "Subtract",


command = self.subtract).pack(side = LEFT)
Button(frame2, text = "Multiply",
command = self.multiply).pack(side = LEFT)
Button(frame2, text = "Divide",
command = self.divide).pack(side = LEFT)

mainloop()

def add(self):
self.v3.set(eval(self.v1.get()) + eval(self.v2.get()))

def subtract(self):
self.v3.set(eval(self.v1.get()) - eval(self.v2.get()))
def multiply(self):
self.v3.set(eval(self.v1.get()) * eval(self.v2.get()))

def divide(self):
self.v3.set(eval(self.v1.get()) / eval(self.v2.get()))

MenuDemo()
In [ ]: from tkinter import * #Listing 9.14
class PopupMenuDemo:
def __init__(self):
window = Tk()
window.title("Popup Menu Demo")

self.menu = Menu(window, tearoff = 0)


self.menu.add_command(label = "Draw a line",
command = self.displayLine)
self.menu.add_command(label = "Draw an oval",
command = self.displayOval)
self.menu.add_command(label = "Draw a rectangle",
command = self.displayRect)
self.menu.add_command(label = "Clear",
command = self.clearCanvas)

self.canvas = Canvas(window, width = 200,


height = 100, bg = "white")
self.canvas.pack()

self.canvas.bind("<Button-3>", self.popup)

window.mainloop()

def displayRect(self):
self.canvas.create_rectangle(10, 10, 190, 90, tags = "rect")

def displayOval(self):
self.canvas.create_oval(10, 10, 190, 90, tags = "oval")

def displayLine(self):
self.canvas.create_line(10, 10, 190, 90, tags = "line")
self.canvas.create_line(10, 90, 190, 10, tags = "line")

def clearCanvas(self):
self.canvas.delete("rect", "oval", "line")

def popup(self, event):


self.menu.post(event.x_root, event.y_root)

PopupMenuDemo()
In [ ]: from tkinter import * #Listing 9.15

class MouseKeyEventDemo:
def __init__(self):
window = Tk()
window.title("Event Demo")
canvas = Canvas(window, bg = "white", width = 200, height = 100)
canvas.pack()
canvas.bind("<Button-1>", self.processMouseEvent)

canvas.bind("<Key>", self.processKeyEvent)
canvas.focus_set()

window.mainloop()

def processMouseEvent(self, event):


print("clicked at", event.x, event.y)
print("Position in the screen", event.x_root, event.y_root)
print("Which button is clicked? ", event.num)

def processKeyEvent(self, event):


print("keysym? ", event.keysym)
print("char? ", event.char)
print("keycode? ", event.keycode)

MouseKeyEventDemo()
In [ ]: from tkinter import * #Listing 9.16
class EnlargeShrinkCircle:
def __init__(self):
self.radius = 50

window = Tk()
window.title("Control Circle Demo")
self.canvas = Canvas(window, bg = "white",
width = 200, height = 200)
self.canvas.pack()
self.canvas.create_oval(
100 - self.radius, 100 - self.radius,
100 + self.radius, 100 + self.radius, tags = "oval")

self.canvas.bind("<Button-3>", self.decreaseCircle)
self.canvas.bind("<Button-1>", self.increaseCircle)

window.mainloop()

def increaseCircle(self, event):


self.canvas.delete("oval")
if self.radius < 100:
self.radius += 2
self.canvas.create_oval(
100 - self.radius, 100 - self.radius,
100 + self.radius, 100 + self.radius, tags = "oval")

def decreaseCircle(self, event):


self.canvas.delete("oval")
if self.radius > 2:
self.radius -= 2
self.canvas.create_oval(
100 - self.radius, 100 - self.radius,
100 + self.radius, 100 + self.radius, tags = "oval")

EnlargeShrinkCircle()
In [ ]: from tkinter import * #Listing 9.17
class AnimationDemo:
def __init__(self):
window = Tk()
window.title("Animation Demo")
width = 250
canvas=Canvas(window, bg="white",width=250,height=50)
canvas.pack()
x = 0
canvas.create_text(x,30,text="Message moving?", tags = "text")
dx = 3
while True:
canvas.move("text",dx,0)
canvas.after(100)
canvas.update()
if x < width:
x += dx
else:
x = 0
canvas.delete("text")
canvas.create_text(x, 30, text = "Message moving?", tags = "text")
window.mainloop()
AnimationDemo()
In [ ]: from tkinter import * #Listing 9.18
class ControlAnimation:
def __init__(self):
window = Tk()
window.title("Control Animation Demo")
self.width = 250
self.canvas=Canvas(window, bg = "white", width = self.width, height =
self.canvas.pack()
frame = Frame(window)
frame.pack()
btStop = Button(frame, text = "Stop", command = self.stop)
btStop.pack(side = LEFT)
btResume = Button(frame, text = "Resume", command = self.resume)
btResume.pack(side = LEFT)
btFaster = Button(frame, text = "Faster", command = self.faster)
btFaster.pack(side = LEFT)
btSlower = Button(frame, text = "Slower", command = self.slower)
btSlower.pack(side = LEFT)
self.x= 0
self.sleepTime=100
self.canvas.create_text(self.x, 30, text = "Message moving?", tags = "text"
self.dx=3
self.isStopped=False
self.animate()
window.mainloop()
def stop(self):
self.isStopped=True
def resume(self):
self.isStopped=False
self.animated()
def faster(self):
if self.sleepTime>5:
self.sleepTime-=20
def slower(self):
self.sleepTime+=20
def animated(self):
while not self.isStopped:
self.canvas.move("text",self.dx,0)
self.canvas.after(self.sleepTime)
self.canvas.update()
if self.x<self.width:
self.x += self.dx
else:
self.x=0
self.canvas.delete("text")
self.canvas.create_text(self.x, 30 ,text = "Message moving?", tags

ControlAnimation()
In [ ]: from tkinter import * #Listing 9.19
class ScrollText:
def __init__(self):
window = Tk()
window.title("Scroll Text Demo")
frame1 = Frame(window)
frame1.pack()
scrollbar = Scrollbar(frame1)
scrollbar.pack(side = RIGHT, fill = Y)

text = Text(frame1, width = 40, height = 10, wrap = WORD, yscrollcommand


text.pack()
scrollbar.config(command= text.yveiw)
window.mainloop()
ScrollText()
In [ ]: import tkinter.messagebox #Listing 9.20
import tkinter.simpledialog
import tkinter.colorchooser

tkinter.messagebox.showinfo("showinfo", "This is an info msg")

tkinter.messagebox.showwarning("showwarning", "This is a warning")

tkinter.messagebox.showerror("showerror", "This is an error")

isYes = tkinter.messagebox.askyesno("askyesno", "Continue?")


print(isYes)

isOK = tkinter.messagebox.askokcancel("askokcancel", "OK?")


print(isOK)

isYesNoCancel = tkinter.messagebox.askyesnocancel( "askyesnocancel", "Yes, No, Cancel


print(isYesNoCancel)

name = tkinter.simpledialog.askstring( "askstring", "Enter your name")


print(name)

age = tkinter.simpledialog.askinteger( "askinteger", "Enter your age")


print(age)

weight = tkinter.simpledialog.askfloat( "askfloat", "Enter your weight")


print(weight)

You might also like