Python tkinter滚动条未激活

Python tkinter滚动条未激活,python,tkinter,scrollbar,Python,Tkinter,Scrollbar,我试图得到一个垂直的滚动条与tkinter工作。我正在使用下面的代码。滚动条将显示,直到我取消对该行的注释 #canvas.configure(yscrollcommand=yscrollbar.set) 我做错了什么 提前谢谢 import tkinter as tk from tkinter import ttk root =tk.Tk() frame = tk.Frame(root) frame.pack() canvas = tk.Canvas(frame, height=200

我试图得到一个垂直的滚动条与tkinter工作。我正在使用下面的代码。滚动条将显示,直到我取消对该行的注释

#canvas.configure(yscrollcommand=yscrollbar.set)
我做错了什么

提前谢谢

import tkinter as tk
from tkinter import ttk

root =tk.Tk()

frame = tk.Frame(root)
frame.pack()

canvas = tk.Canvas(frame, height=200, width=200, background="blue")

yscrollbar = tk.Scrollbar(frame, orient=tk.VERTICAL, command=canvas.yview)

frame.columnconfigure(0, weight=1)
frame.rowconfigure(0, weight=1)

yscrollbar.grid(row=0, column=1, sticky='ns')
canvas.grid(row=0, column=0, sticky='ewns')

canvas.configure(yscrollcommand=yscrollbar.set)
canvas.config(scrollregion=canvas.bbox("all"))

root.mainloop()

谢谢,滚动区域小于画布大小

开始工作了

import tkinter as tk
from tkinter import ttk


root =tk.Tk()

frame = tk.Frame(root, height=100, width=100)
frame.pack()

frame.columnconfigure(0, weight=1)
frame.rowconfigure(0, weight=1)

canvas = tk.Canvas(frame, height=200, width=200, background="blue")
canvas.grid(row=0, column=0, sticky='ewns')

yscrollbar = tk.Scrollbar(frame, orient=tk.VERTICAL, command=canvas.yview)
yscrollbar.grid(row=0, column=1, sticky='ns')
canvas.configure(yscrollcommand=yscrollbar.set)

frame_buttons = tk.Frame(canvas, bg="green")
canvas.create_window((0, 0), window=frame_buttons, anchor="nw")

rows = 9
columns = 5

buttons = [[tk.Button() for j in range(columns)] for i in range(rows)]
for i in range(0, rows):
    for j in range(0, columns):
        buttons[i][j] = tk.Button(frame_buttons, text=("%d,%d" % (i+1, j+1)))
        buttons[i][j].grid(row=i, column=j, sticky='news')
    
frame_buttons.update_idletasks()



canvas.configure(scrollregion=canvas.bbox("all"))

root.mainloop()

它处于非活动状态,因为滚动区域未设置或小于画布大小。您好,我已更新了试图设置滚动区域的代码。。。。但是仍然没有爱画布中没有任何内容,因此
canvas.bbox('all')
返回
None
,添加一些使滚动区域大于画布大小的项目并查看结果。这就完成了。谢谢你的帮助!