Первая программа(сдвиг столбца с кнопками при работе с tkinter)

Мамкин программист

Новичок
Пользователь
Июн 28, 2022
1
0
1
Доброго времени суток:) Решил написать свою первую программу на Python. Хочу начать с калькулятора, пока простого(+-/*).
1. Перед написанием кода действий решил создать форму, сделал все кнопки одного размера, но после добавления поля ввода первый столбец "съехал".
Подскажите как задать размер поля ввода так, чтобы столбец с кнопками не расширялся.
2. Сразу второй вопрос в догонку, подскажите как задать каждой кнопке уникальное имя, чтобы к ней позже можно было обращаться в коде.
3. Ну и последний(пока последний:) ) вопрос, пока он не столь важен, но, можно ли сделать так, чтобы консоль на заднем фоне не открывалась при открытии приложения( файл Калькулятор.py).

P.S. Раньше написанием кода не занимался, прошу сильно не ругаться:) Листинг кода и скрины до и после прилагаю.

1656425582654.png1656425639333.png

Листинг кода:
Python:
from tkinter import *

 



window = Tk()

window.title("Калькулятор")

window.geometry('250x250')





#Цифры

btn = Button(window, text="1", height = 1, width = 1)

btn.grid(column=0, row=0)

btn = Button(window, text="2", height = 1, width = 1)

btn.grid(column=1, row=0)

btn = Button(window, text="3", height = 1, width = 1)

btn.grid(column=2, row=0)



btn = Button(window, text="4", height = 1, width = 1)

btn.grid(column=0, row=1)

btn = Button(window, text="5", height = 1, width = 1)

btn.grid(column=1, row=1)

btn = Button(window, text="6", height = 1, width = 1)

btn.grid(column=2, row=1)



btn = Button(window, text="7", height = 1, width = 1)

btn.grid(column=0, row=2)

btn = Button(window, text="8", height = 1, width = 1)

btn.grid(column=1, row=2)

btn = Button(window, text="9", height = 1, width = 1)

btn.grid(column=2, row=2)



btn = Button(window, text="0", height = 1, width = 1)

btn.grid(column=1, row=3)



#Десятичная дробь

btn = Button(window, text=".", height = 1, width = 1)

btn.grid(column=0, row=3)



#Равно

btn = Button(window, text="=", height = 1, width = 1)

btn.grid(column=2, row=3)





#Математические действия

btn = Button(window, text="+", height = 1, width = 1)

btn.grid(column=4, row=0)

btn = Button(window, text="-", height = 1, width = 1)

btn.grid(column=4, row=1)

btn = Button(window, text="*", height = 1, width = 1)

btn.grid(column=4, row=2)

btn = Button(window, text="/", height = 1, width = 1)

btn.grid(column=4, row=3)



#Окно ввода и вывода

#txt = Entry(window,width=10)

#txt.grid(column=0, row=4)







window.mainloop()
 

regnor

Модератор
Команда форума
Модератор
Июл 7, 2020
2 661
474
83
1. Перед написанием кода действий решил создать форму, сделал все кнопки одного размера, но после добавления поля ввода первый столбец "съехал".
Подскажите как задать размер поля ввода так, чтобы столбец с кнопками не расширялся.
вы используете компоновку grid - это сетка, можно задать размер такой же как у кнопки, тогда расширяться не будет
или сделать его сбоку, то есть в 5ом столбце, или наоборот сместить все кнопки и в 0ом сделать поле ввода
так же можете попробовать компоновку pack или place

2. Сразу второй вопрос в догонку, подскажите как задать каждой кнопке уникальное имя, чтобы к ней позже можно было обращаться в коде.
вместо btn написать что-нибудь другое, действие кнопке задается через атрибут command=func, где func - ваша функция, которая будет отрабатывать после нажатия кнопки

3. Ну и последний(пока последний:) ) вопрос, пока он не столь важен, но, можно ли сделать так, чтобы консоль на заднем фоне не открывалась при открытии приложения( файл Калькулятор.py).
переименуйте файл из py в pyw
 

Форум IT Специалистов