Полоса прокрутки Tkinter не имеет перетаскиваемой части

#python #tkinter #scrollbar

#python #tkinter #полоса прокрутки

Вопрос:

Код:

 from tkinter import * 
from tkinter import ttk


root=Tk()
# creating the main frame
main_frame=Frame(root)
main_frame.pack(fill=BOTH,expand=1)
mycanvas=Canvas(main_frame)
mycanvas.pack(side=LEFT,fill=BOTH,expand=1)
myscrollbar=Scrollbar(main_frame,orient=VERTICAL,command=mycanvas.yview)
myscrollbar.pack(side=RIGHT,fill=Y)
mycanvas.configure(yscrollcommand=myscrollbar.set)
mycanvas.bind("<Configure>",lambda e: mycanvas.configure(scrollregion=mycanvas.bbox("all")))
secondframe=Frame(mycanvas)
mycanvas.create_window((0,0),window=secondframe,anchor="nw")
labell=Label(secondframe,text="run this")
labell.grid(row=3,column=4)
root.mainloop()
  

Вывод:
введите описание изображения здесь

Все работает нормально, за исключением перетаскиваемой части для прокрутки. Пожалуйста, помогите мне с этим

Ответ №1:

Этот код будет работать просто отлично, все, что вам нужно сделать, это иметь больше элементов во фрейме, чтобы он был заполнен для перетаскивания. Чтобы увидеть это самостоятельно, измените свой ярлык на:

 for a in range(50):
    Label(secondframe,text=a).grid(row=a,column=4)
  

Вы заметите, что теперь можно использовать полосу прокрутки. Без большого количества «элементов» нет необходимости в y-полосе прокрутки, и, следовательно, она отображается серым цветом.

Комментарии:

1. о, хорошо, понял, я только начал изучать полосу прокрутки tkinter

2. @Hafeezh На всякий случай попробуйте заменить метку на this и подтвердите: D

3. я хотел спросить вас, есть ли какой-либо способ иметь полосу прокрутки только для определенной высоты по оси y

4. @Hafeezh Ну, я не сделал ни одной полосы прокрутки за все мое путешествие по tkinter, лол, так что я не уверен.