Как исправить полосу прокрутки, чтобы она растягивалась сверху вниз? - PullRequest
0 голосов
/ 05 февраля 2019

Я хочу создать рамку внутри холста, и мне нужно иметь возможность прокручивать содержимое рамки.

Я узнал, что полоса прокрутки не может быть добавлена ​​в рамку, поэтому я создаюхолст для этого должна быть прикреплена полоса прокрутки. Но при создании полосы прокрутки она становится меньше в углу.Мне нужно решение, чтобы это исправить. Снимок экрана с моей проблемой с полосой прокрутки

root = Tk()
root.geometry("1000x1000")
root.title("Title")
root.grid_rowconfigure(2, weight=1)
root.columnconfigure(0, weight=1)
canv=Canvas(root,width=600, height=600, background='blue')
vsb = Scrollbar(root, orient="vertical", command=canv.yview)
canv.config(yscrollcommand=vsb.set)
vsb.grid(row=0,column=1,sticky="ns")
canv.config(scrollregion=(0, 0,600,1000))
canv.grid(row=1, column=0)
canv.bind('<Configure>',canv.config(scrollregion=canv.bbox('all')))

Итак, я ожидаю иметь метку в центре вверху (на севере) моего корневого экрана и полосу прокрутки, которая должна прокручиватьсодержимое всего экрана.

1 Ответ

0 голосов
/ 05 февраля 2019

Потому что у вас есть scrollbar в row=0 и canvas в row=1.Вы должны сделать canvas и scrollbar в одном и том же row, но в двух разных columns.Попробуйте это:

from tkinter import *

root = Tk()
root.geometry("1000x1000")
root.title("Title")

root.grid_rowconfigure(0, weight=1)
root.columnconfigure(0, weight=1)
root.columnconfigure(1, weight=0)

canv = Canvas(root, width=600, height=600, background='blue')
vsb = Scrollbar(root, orient="vertical", command=canv.yview)
canv.config(yscrollcommand=vsb.set)
vsb.grid(row=0, column=1, sticky="ns")
canv.config(scrollregion=(0, 0, 600, 1000))
canv.grid(row=0, column=0)  # row = 0
canv.bind('<Configure>', canv.config(scrollregion=canv.bbox('all')))

root.mainloop()
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...