Я пытаюсь закодировать полосу прокрутки, которую можно использовать для просмотра содержимого моего холста. Итак, после многих ошибок я заставил полосу прокрутки оставаться в том месте, к которому она была прокручена, но она продолжала отображать содержимое в верхней части окна, даже когда я прокручивал страницу вниз, и я видел много подобных вопросов и статей о том, как работают полосы прокрутки. на холстах, но у меня ничего не получалось.
Я также пытался использовать bbox («все») для установки области прокрутки для холста, но это тоже не сработало. Использование рамки тоже не сработало. В некоторых подобных вопросах я видел, что размещение должно быть определенным образом, но я не понимал, как это сделать, или даже если мой код не работает из-за этого. Я сделал виджеты, как указано на холсте. Я видел, что во многих местах то же самое было сделано с помощью команды canvas.create_window, но я не совсем понимал, как это использовать, и без этого все работало нормально, поэтому я не стал беспокоиться.
Я использовал метку , запись, радио-кнопка, опция и кнопка на холсте. Вот как я использовал bbox («все»), который у меня тоже не работал и в итоге отключил полосу прокрутки. Я сделал это как можно короче.
from tkinter import *
w = Tk()
w.geometry('650x640')
state=StringVar()
c=Canvas(w,bg="gray94",height=750,width=650)
c.config(scrollregion=c.bbox("all"))
c.pack(expand=YES,fill=BOTH)
scr=Scrollbar(c)
scr.pack(side=RIGHT,fill=Y)
c.config(yscrollcommand=scr.set)
scr.config(command=c.yview)
#widgets
Button(c, text="Back").place(x=100,y=200)
Label(c, text="Registration form",width=20,font=("bold",
20)).place(x=160,y=750)
Label(c, text="State",width=20,font=("bold", 10)).place(x=149,y=390)
l2 = ['KA','NY']
dl2=OptionMenu(w,state, *l2)
dl2.place(x=310,y=390)
Button(c, text='Submit',width=20).place(x=240,y=690)
w.mainloop()
И вот как это выглядело для исполнения для меня.
tkinterwindow
И если я использовал координаты для области прокрутки. Я могу прокрутить вниз, как показано, но я все еще не вижу метку при y = 750
без коробки
Я использую python 3.6.8. Это мой первый вопрос, я прошу прощения за любые ошибки и, пожалуйста, скажите мне, если какая-либо информация отсутствует, или я должен обновить вопрос с моим полным кодом. Спасибо:)