Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- # question: https://stackoverflow.com/questions/60216042/problem-with-button-alignment-with-python-tkinter
- # image: https://imgur.com/gallery/AS5JsPQ
- import tkinter as tk
- # --- functions ---
- def on_click(value):
- result['text'] += value
- # --- main ---
- window = tk.Tk()
- window.geometry("800x600")
- window.title("Calculator")
- menu = tk.Menu(window)
- new_item = tk.Menu(menu)
- new_item.add_command(label="Language", command=window.destroy)
- new_item.add_command(label="Reset", command=window.destroy)
- new_item.add_command(label="Save result as txt", command=window.destroy)
- new_item.add_command(label="Help", command=window.destroy)
- new_item.add_command(label="Quit", command=window.destroy)
- menu.add_cascade(label="Options", menu=new_item)
- window.config(menu=menu)
- # ---
- for c in range(1, 5):
- window.columnconfigure(c, weight=1)
- for r in range(1, 6):
- window.rowconfigure(r, weight=1)
- window['bg'] = 'black'
- grid_options = {'sticky': 'news', 'padx': 1, 'pady': 1}
- # --- result ---
- frame_result = tk.Frame(window, bg='red')
- frame_result.grid(column=1, row=1, columnspan=4, **grid_options)
- result = tk.Label(frame_result, text="", bg="yellow", fg="black", cursor="exchange")
- result.pack(padx=20, pady=(20,20), fill='both', expand=True) # , pady=(20,70)
- # --- numbers ---
- options = {'bg': "green", 'activebackground': "darkgreen", 'fg': "white", 'relief': 'flat', 'highlightbackground': 'green'}#, 'highlightthickness': 0}
- # -
- btn = tk.Button(window, text="7", command=lambda:on_click('7'), **options)
- btn.grid(column=1, row=2, **grid_options)
- btn = tk.Button(window, text="8", command=lambda:on_click('8'), **options)
- btn.grid(column=2, row=2, **grid_options)
- btn = tk.Button(window, text="9", command=lambda:on_click('9'), **options)
- btn.grid(column=3, row=2, **grid_options)
- # -
- btn = tk.Button(window, text="4", command=lambda:on_click('4'), **options)
- btn.grid(column=1, row=3, **grid_options)
- btn = tk.Button(window, text="5", command=lambda:on_click('5'), **options)
- btn.grid(column=2, row=3, **grid_options)
- btn = tk.Button(window, text="6", command=lambda:on_click('6'), **options)
- btn.grid(column=3, row=3, **grid_options)
- # -
- btn = tk.Button(window, text="1", command=lambda:on_click('1'), **options)
- btn.grid(column=1, row=4, **grid_options)
- btn = tk.Button(window, text="2", command=lambda:on_click('2'), **options)
- btn.grid(column=2, row=4, **grid_options)
- btn = tk.Button(window, text="3", command=lambda:on_click('3'), **options)
- btn.grid(column=3, row=4, **grid_options)
- # -
- btn = tk.Button(window, text="0", command=lambda:on_click('0'), **options)
- btn.grid(column=1, row=5, **grid_options)
- options = {'fg': "white", 'relief': 'flat'}#, 'highlightthickness': 0}
- btn = tk.Button(window, text=",", command=lambda:on_click(','), bg="green", activebackground="darkgreen", highlightbackground='green', **options)
- btn.grid(column=2, row=5, **grid_options)
- options = {'fg': "black", 'relief': 'flat'}#, 'highlightthickness': 0}
- btn = tk.Button(window, text="=", command=lambda:on_click('='), bg="yellow", activebackground="orange", highlightbackground='yellow', **options)
- btn.grid(column=3, row=5, **grid_options)
- # --- other ---
- options = {'bg': "lightgreen", 'activebackground': "lightblue", 'fg': "black", 'relief': 'flat', 'highlightthickness': 0}
- btn = tk.Button(window, text="+", command=lambda:on_click('+'), **options)
- btn.grid(column=4, row=2, **grid_options)
- btn = tk.Button(window, text="-", command=lambda:on_click('-'), **options)
- btn.grid(column=4, row=3, **grid_options)
- btn = tk.Button(window, text="*", command=lambda:on_click('*'), **options)
- btn.grid(column=4, row=4, **grid_options)
- btn = tk.Button(window, text="/", command=lambda:on_click('/'), **options)
- btn.grid(column=4, row=5, **grid_options)
- # ---
- window.mainloop()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement