Форум сайта python.su
Помогите с задачей, пожалуйста! Ни черта не понимаю в питоне…
Напишите скрипт, генерирующий в окне два текстовых поля и рамку. Размер рамки можно менять с помощью вводимых значений в текстовые поля (определяют длину и ширину) и нажатии клавиши пробел на клавиатуре.
Буду очень признателен.
Офлайн
DarkNeco
начните по порядку, для начала напишите скрипт, генерирующий в окне два текстовых поля и рамку.
[code python][/code]
Офлайн
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()
Офлайн
Как заставить строчку реагировать на пробел? Я в курсе, что это делается через 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()
Отредактировано DarkNeco (Март 23, 2021 13:56:37)
Прикреплённый файлы:
Screenshot_20210323-144357.jpg (338,7 KБ)
Офлайн
ну в таком виде оно не будет работать, у вас виджеты внутри рамки и рамка будет автоматически подстраиваться под размер виджетов. Хотя оно фикситься одной строчкой,сомневаюсь что именно это имелось ввиду, наверное всетаки рамка должна была быть отдельно, но ладно как есть уже. А так почти правильно.
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)
Офлайн
PEHDOMОтлично, спасибо большое!
Биндить достаточно один раз для всего окна, а не для каждого элемента.
Офлайн