Почему я не могу переместить рамку с помощью pady, но могу с помощью padx??
frame = Frame(window)
frame.pack(side=LEFT,pady=15)
lista_spese = Listbox(frame)
lista_spese.configure(font=("Ink Free",20), width=28, height=8, bg="#4a4a4a", fg="#dedede",relief="solid",borderwidth=4)
etichetta_lista_spese = Label(window,text="Lista delle spese",bg="#64d981",font=("Ink Free",19),relief="solid",borderwidth=1)
etichetta_lista_spese.place(relx=0.02, rely=0.27)
scrollbar = Scrollbar(frame,command=lista_spese.yview)
scrollbar.pack(side=RIGHT,fill=Y)
lista_spese.config(yscrollcommand=scrollbar.set)
scrollbar2 = Scrollbar(frame,command=lista_spese.xview,orient="horizontal")
scrollbar2.pack(side=BOTTOM,fill=X)
lista_spese.config(xscrollcommand=scrollbar2.set)
lista_spese.pack()
Решение проблемы
Лично я думаю, что такие проблемы гораздо легче решить, когда вы группируете все команды макета вместе для данной группы окон. Итак, давайте начнем с этого:
lista_spese.pack(side=TOP)
scrollbar.pack(side=RIGHT,fill=Y)
scrollbar2.pack(side=BOTTOM,fill=X)
Теперь становится ясно, что вы сначала помещаете список вверху, а затем добавляете полосы прокрутки. С pack
, порядок важен. Упаковщик выделит всю сторону контейнера для виджета. Таким образом, когда вы упаковываете список вверху, вся верхняя часть пустого фрейма выделяется для списка. По умолчанию ничего больше не может идти сбоку или выше, хотя это правило можно нарушить дополнительными аргументами.
Если вместо этого сначала упаковать полосы прокрутки, а затем упаковать список, все будет работать так, как вы ожидаете.
scrollbar.pack(side=RIGHT,fill=Y)
scrollbar2.pack(side=BOTTOM,fill=X)
lista_spese.pack(side=TOP)
Вы также можете сохранить первоначальный порядок и использовать параметры before
или after
для изменения порядка, в котором выделяется пустое пространство:
lista_spese.pack(side=TOP)
scrollbar.pack(side=RIGHT,fill=Y, before=lista_spese)
scrollbar2.pack(side=BOTTOM,fill=X)
Подробный пример работы упаковщика с иллюстрациями см. в следующем объяснении на этом сайте: https://stackoverflow.com/a/57396569/7432.
Комментариев нет:
Отправить комментарий