Уведомления

Группа в Telegram: @pythonsu

#1 Март 22, 2021 18:19:19

DarkNeco
Зарегистрирован: 2021-03-22
Сообщения: 9
Репутация: +  0  -
Профиль   Отправить e-mail  

Изменение рамки при помощи вводимых значений

Помогите с задачей, пожалуйста! Ни черта не понимаю в питоне…
Напишите скрипт, генерирующий в окне два текстовых поля и рамку. Размер рамки можно менять с помощью вводимых значений в текстовые поля (определяют длину и ширину) и нажатии клавиши пробел на клавиатуре.
Буду очень признателен.

Офлайн

#2 Март 23, 2021 09:07:31

PEHDOM
Зарегистрирован: 2016-11-28
Сообщения: 2196
Репутация: +  294  -
Профиль   Отправить e-mail  

Изменение рамки при помощи вводимых значений

DarkNeco
начните по порядку, для начала напишите скрипт, генерирующий в окне два текстовых поля и рамку.



==============================
Помещайте код в теги:
[code python][/code]
Бериегите свое и чужое время.

Офлайн

#3 Март 23, 2021 13:07:51

DarkNeco
Зарегистрирован: 2021-03-22
Сообщения: 9
Репутация: +  0  -
Профиль   Отправить e-mail  

Изменение рамки при помощи вводимых значений

PEHDOM
DarkNecoначните по порядку, для начала напишите скрипт, генерирующий в окне два текстовых поля и рамку.
Как-то так вышло.
 from tkinter import *
root=Tk()
fra=Frame(root,width=300,height=300,bg="lightgreen",bd=20)
ent1=Entry(fra,width=20)
ent2=Entry(fra,width=20)
def spc(event):
fra.pack()
ent1.pack()
ent2.pack()
root.mainloop()
Но я не просто так попросил помочь, потому что в учебном материале колледжа не объясняют, как одно привязать к другому и как привязать параметры одного элемента к другим, не говоря уже о вводимых значениях!!!
Помогите, пожалуйста!

Офлайн

#4 Март 23, 2021 13:56:05

DarkNeco
Зарегистрирован: 2021-03-22
Сообщения: 9
Репутация: +  0  -
Профиль   Отправить e-mail  

Изменение рамки при помощи вводимых значений

Как заставить строчку реагировать на пробел? Я в курсе, что это делается через bind, но я нигде не могу найти обозначение кнопки пробела.

 from tkinter import *
root=Tk()
fra=Frame(root,width=300,height=300,bg="lightgreen",bd=20)
ent1=Entry(fra,width=20)
ent2=Entry(fra,width=20)
def spc1(event):
fra['height']=ent1.get()
def spc2(event):
fra['width']=ent2.get()
fra.pack()
ent1.bind("<Space>",spc1)
ent2.bind("<Spase>",spc2)
ent1.pack()
ent2.pack()
root.mainloop()
на значении Space питон выдает ошибку. Не знаю, что делать. И будет ли работать эта программа в соответствии с заданием, тоже вопрос!

Отредактировано DarkNeco (Март 23, 2021 13:56:37)

Прикреплённый файлы:
attachment Screenshot_20210323-144357.jpg (338,7 KБ)

Офлайн

#5 Март 23, 2021 14:20:31

PEHDOM
Зарегистрирован: 2016-11-28
Сообщения: 2196
Репутация: +  294  -
Профиль   Отправить e-mail  

Изменение рамки при помощи вводимых значений

ну в таком виде оно не будет работать, у вас виджеты внутри рамки и рамка будет автоматически подстраиваться под размер виджетов. Хотя оно фикситься одной строчкой,сомневаюсь что именно это имелось ввиду, наверное всетаки рамка должна была быть отдельно, но ладно как есть уже. А так почти правильно.

 from tkinter import *
root=Tk()
fra=Frame(root,width=300,height=300,bg="lightgreen",bd=20)
fra.pack_propagate(False)  # делаем чтобы рамка не подстраивалась пдо размер виджетов
ent1=Entry(fra,width=20)
ent2=Entry(fra,width=20)
def spc1(event):
    fra['height']=ent1.get()
    fra['width']=ent2.get()
root.bind("<space>",spc1)
ent1.pack()
ent2.pack()
fra.pack()
root.mainloop()
Биндить достаточно один раз для всего окна, а не для каждого элемента.



==============================
Помещайте код в теги:
[code python][/code]
Бериегите свое и чужое время.

Отредактировано PEHDOM (Март 23, 2021 14:34:12)

Офлайн

#6 Март 23, 2021 14:45:09

DarkNeco
Зарегистрирован: 2021-03-22
Сообщения: 9
Репутация: +  0  -
Профиль   Отправить e-mail  

Изменение рамки при помощи вводимых значений


PEHDOM
Биндить достаточно один раз для всего окна, а не для каждого элемента.
Отлично, спасибо большое!

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version