Tkinter problems

Hi this is RM MUSIC

Currently, working on a simple calculator project, but I am finding difficulty in placing the buttons in their right place.

from tkinter import *

# This is again a simple calculator program, but with a good
# GUI support with it.
root = Tk()
root.title("RM's Simple Calculator")


# Creating an input criterion
e = Entry(root, bg="black", fg="white", selectbackground="orange")


# Defining Buttons
b_1 = Button(root, text="1", fg="white", bg="black")
b_2 = Button(root, text="2", fg="white", bg="black")
b_3 = Button(root, text="3", fg="white", bg="black")
b_4 = Button(root, text="4", fg="white", bg="black")
b_5 = Button(root, text="5", fg="white", bg="black")
b_6 = Button(root, text="6", fg="white", bg="black")
b_7 = Button(root, text="7", fg="white", bg="black")
b_8 = Button(root, text="8", fg="white", bg="black")
b_9 = Button(root, text="9", fg="white", bg="black")
b_0 = Button(root, text="0", fg="white", bg="black")
b_ac = Button(root, text="A.C", fg="orange", bg="black")
b_del = Button(root, text="DEL", fg="orange", bg="black")
b_mr = Button(root, text="mr", fg="white", bg="black")
b_div = Button(root, text="/", fg="white", bg="black")
b_mul = Button(root, text="X", fg="white", bg="black")
b_add = Button(root, text="+", fg="white", bg="black")
b_sub = Button(root, text="-", fg="white", bg="black")
b_mod = Button(root, text="%", fg="white", bg="black")
b_point = Button(root, text=".", fg="white", bg="black")
b_equal = Button(root, text="=", fg="white", bg="orange")


# Fixing the buttons on the screen

e.grid(row= 0, column= 0, padx=25, columnspan= 4)

b_ac.grid(row= 1, column= 0, padx= 20, pady= 20, columnspan= 2)
b_del.grid(row= 1, column= 1, padx= 20, pady= 20, columnspan= 2)
b_mr.grid(row= 1, column= 2, padx= 20, pady= 20, columnspan= 2)
b_div.grid(row= 1, column= 3, padx= 20, pady= 20, columnspan= 2)

b_7.grid(row= 2, column= 0, padx= 20, pady= 20, columnspan= 2)
b_8.grid(row= 2, column= 1, padx= 20, pady= 20, columnspan= 2)
b_9.grid(row= 2, column= 2, padx= 20, pady= 20, columnspan= 2)
b_mul.grid(row= 2, column= 3, padx= 20, pady= 20, columnspan= 2)

b_4.grid(row= 3, column= 0, padx= 20, pady= 20, columnspan= 2)
b_5.grid(row= 3, column= 1, padx= 20, pady= 20, columnspan= 2)
b_6.grid(row= 3, column= 2, padx= 20, pady= 20, columnspan= 2)
b_sub.grid(row= 3, column= 3, padx= 20, pady= 20, columnspan= 2)

b_1.grid(row= 4, column= 0, padx= 20, pady= 20, columnspan= 2)
b_2.grid(row= 4, column= 1, padx= 20, pady= 20, columnspan= 2)
b_3.grid(row= 4, column= 2, padx= 20, pady= 20, columnspan= 2)
b_add.grid(row= 4, column= 3, padx= 20, pady= 20, columnspan= 2)

b_mod.grid(row= 5, column= 0, padx= 20, pady= 20, columnspan= 2)
b_0.grid(row= 5, column= 1, padx= 20, pady= 20, columnspan= 2)
b_point.grid(row= 5, column= 2, padx= 20, pady= 20, columnspan= 2)
b_equal.grid(row= 5, column= 3, padx= 20, pady= 20, columnspan= 2)

root.mainloop()

That was my code and I am finding difficulty in placing those buttons.


I just wanted to have my buttons a bit close to each other and to enlarge those buttons equally big.

Please if anyone can solve my problem, then please reply me as soon as possible.

Thank you,

RM MUSIC

Hi, I have modified your code as per your needs and you can play with the parameters further too!

from tkinter import *

# This is again a simple calculator program, but with a good
# GUI support with it.
root = Tk()
root.title("RM's Simple Calculator")
root.minsize(420,400)
root.resizable(False,False)

topframe = Frame(root)
topframe.pack(side = 'top', padx = 20)
bottomframe = Frame(root)
bottomframe.pack(pady = 20)

e = Entry(topframe, bg = "black", fg = "white", highlightcolor = "orange", width = 20, font='Arial 24 bold')
e.pack(padx = 10, pady = 10, ipadx = 5, ipady = 5)

b_1 = Button(bottomframe, text="1", fg="white", bg="black", font='Arial 22 bold')
b_1.grid(row = 3, column = 0, padx = 1, pady = 1, ipadx = 23, ipady = 3)

b_2 = Button(bottomframe, text="2", fg="white", bg="black", font='Arial 22 bold')
b_2.grid(row = 3, column = 1, padx = 1, pady = 1, ipadx = 23, ipady = 3)

b_3 = Button(bottomframe, text="3", fg="white", bg="black", font='Arial 22 bold')
b_3.grid(row = 3, column = 2, padx = 1, pady = 1, ipadx = 23, ipady = 3)

b_4 = Button(bottomframe, text="4", fg="white", bg="black", font='Arial 22 bold')
b_4.grid(row = 2, column = 0, padx = 1, pady = 1, ipadx = 23, ipady = 3)

b_5 = Button(bottomframe, text="5", fg="white", bg="black", font='Arial 22 bold')
b_5.grid(row = 2, column = 1, padx = 1, pady = 1, ipadx = 23, ipady = 3)

b_6 = Button(bottomframe, text="6", fg="white", bg="black", font='Arial 22 bold')
b_6.grid(row = 2, column = 2, padx = 1, pady = 1, ipadx = 23, ipady = 3)

b_7 = Button(bottomframe, text="7", fg="white", bg="black", font='Arial 22 bold')
b_7.grid(row = 1, column = 0, padx = 1, pady = 1, ipadx = 23, ipady = 3)

b_8 = Button(bottomframe, text="8", fg="white", bg="black", font='Arial 22 bold')
b_8.grid(row = 1, column = 1, padx = 1, pady = 1, ipadx = 23, ipady = 3)

b_9 = Button(bottomframe, text="9", fg="white", bg="black", font='Arial 22 bold')
b_9.grid(row = 1, column = 2, padx = 1, pady = 1, ipadx = 23, ipady = 3)

b_0 = Button(bottomframe, text="0", fg="white", bg="black", font='Arial 22 bold')
b_0.grid(row = 4, column = 1, padx = 1, pady = 1, ipadx = 23, ipady = 3)

b_ac = Button(bottomframe, text="A.C.", fg="orange", bg="black", font='Arial 22 bold')
b_ac.grid(row = 0, column = 0, padx = 2, pady = 2, ipadx = 2, ipady = 3)

b_del = Button(bottomframe, text="DEL", fg="orange", bg="black", font='Arial 22 bold')
b_del.grid(row = 0, column = 1, padx = 2, pady = 2, ipadx = 2, ipady = 3)

b_mr = Button(bottomframe, text="mr", fg="white", bg="black", font='Arial 22 bold')
b_mr.grid(row = 0, column = 2, padx = 2, pady = 2, ipadx = 13, ipady = 3)

b_div = Button(bottomframe, text="/", fg="white", bg="black", font='Arial 22 bold')
b_div.grid(row = 0, column = 3, padx = 1, pady = 1, ipadx = 27, ipady = 3)

b_mul = Button(bottomframe, text="*", fg="white", bg="black", font='Arial 22 bold')
b_mul.grid(row = 1, column = 3, padx = 1, pady = 1, ipadx = 25, ipady = 3)

b_add = Button(bottomframe, text="+", fg="white", bg="black", font='Arial 22 bold')
b_add.grid(row = 3, column = 3, padx = 1, pady = 1, ipadx = 23, ipady = 3)

b_sub = Button(bottomframe, text="-", fg="white", bg="black", font='Arial 22 bold')
b_sub.grid(row = 2, column = 3, padx = 1, pady = 1, ipadx = 26, ipady = 3)

b_mod = Button(bottomframe, text="%", fg="white", bg="black", font='Arial 22 bold')
b_mod.grid(row = 4, column = 0, padx = 1, pady = 1, ipadx = 19, ipady = 3)

b_point = Button(bottomframe, text=".", fg="white", bg="black", font='Arial 22 bold')
b_point.grid(row = 4, column = 2, padx = 1, pady = 1, ipadx = 27, ipady = 3)

b_equal = Button(bottomframe, text="=", fg="white", bg="orange", font='Arial 22 bold')
b_equal.grid(row = 4, column = 3, padx = 1, pady = 1, ipadx = 23, ipady = 3)

root.mainloop()

and here is the end result -

Screenshot from 2020-06-04 22-43-40

Hoping you liked my modification and I just saw your post an hour ago, hoping its not too late to reply with a solution. Cheers! :slight_smile:

Thanks for your reply.

It helped me with my project.

Thank you again.