Найти - Пользователи
Полная версия: Изменение рамки при помощи вводимых значений
Начало » Python для новичков » Изменение рамки при помощи вводимых значений
1
DarkNeco
Помогите с задачей, пожалуйста! Ни черта не понимаю в питоне…
Напишите скрипт, генерирующий в окне два текстовых поля и рамку. Размер рамки можно менять с помощью вводимых значений в текстовые поля (определяют длину и ширину) и нажатии клавиши пробел на клавиатуре.
Буду очень признателен.
PEHDOM
DarkNeco
начните по порядку, для начала напишите скрипт, генерирующий в окне два текстовых поля и рамку.
DarkNeco
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()
Но я не просто так попросил помочь, потому что в учебном материале колледжа не объясняют, как одно привязать к другому и как привязать параметры одного элемента к другим, не говоря уже о вводимых значениях!!!
Помогите, пожалуйста!
DarkNeco
Как заставить строчку реагировать на пробел? Я в курсе, что это делается через 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 питон выдает ошибку. Не знаю, что делать. И будет ли работать эта программа в соответствии с заданием, тоже вопрос!
PEHDOM
ну в таком виде оно не будет работать, у вас виджеты внутри рамки и рамка будет автоматически подстраиваться под размер виджетов. Хотя оно фикситься одной строчкой,сомневаюсь что именно это имелось ввиду, наверное всетаки рамка должна была быть отдельно, но ладно как есть уже. А так почти правильно.
 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()
Биндить достаточно один раз для всего окна, а не для каждого элемента.
DarkNeco

PEHDOM
Биндить достаточно один раз для всего окна, а не для каждого элемента.
Отлично, спасибо большое!
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB