python tkinter Toplevel()中的滚动条会显示,但不会滚动
我已经看了这里所有可用的回答问题,但没有结果。我正在使用Mac OS X High Sierra,我的滚动条小部件会显示,但不会滚动窗口,有什么建议吗python tkinter Toplevel()中的滚动条会显示,但不会滚动,python,macos,tkinter,scrollbar,Python,Macos,Tkinter,Scrollbar,我已经看了这里所有可用的回答问题,但没有结果。我正在使用Mac OS X High Sierra,我的滚动条小部件会显示,但不会滚动窗口,有什么建议吗 from tkinter import * root = Tk() root.geometry('400x500') root.resizable(False, False) def window(): popup = Toplevel() vertScrollbar = Scrollbar(popup, orient
from tkinter import *
root = Tk()
root.geometry('400x500')
root.resizable(False, False)
def window():
popup = Toplevel()
vertScrollbar = Scrollbar(popup, orient='vertical')
vertScrollbar.pack(side='right', fill='y')
scrollCanvas = Canvas(popup, width='400', height='500', yscrollcommand=vertScrollbar.set)
vertScrollbar.config(command=scrollCanvas.yview)
scrollFrame = Frame(scrollCanvas, width='400', height='500')
scrollCanvas.create_window(0, 0, window=scrollFrame, anchor='n')
for words in range(150):
test = Label(scrollCanvas)
test.config(text='this is a test')
test.pack()
scrollCanvas.config(scrollregion=scrollCanvas.bbox('all'))
#scrollCanvas.config(scrollregion=(0,0,400,800)) doesn't work either
scrollCanvas.pack(side='top', fill='both')
scrollFrame.pack(side='top', fill='both')
openWindow = Button(root, text='Push Me', command=window)
openWindow.pack(ipadx='5', ipady='3', pady='10')
root.mainloop()
滚动框内没有任何内容
标签打包在弹出窗口中,而不是滚动画布中
scrollCanvas.configscrollregion=scrollCanvas.bbox'all'似乎不起作用,原因不明
下面是一个在windows 10上适用于Python 3.6.5的示例:
from tkinter import *
root = Tk()
root.geometry('200x200')
root.resizable(False, False)
vertScrollbar = Scrollbar(root, orient='vertical')
vertScrollbar.pack(side='right', fill='y')
scrollCanvas = Canvas(root, width='400', height='500',
scrollregion=(0, 0, 400, 500),
yscrollcommand=vertScrollbar.set)
vertScrollbar.config(command=scrollCanvas.yview)
scrollCanvas.pack(side='top', fill='both')
img = PhotoImage(file='test.gif')
scrollCanvas.create_image(2, 2, anchor='nw', image = img)
root.mainloop()
这一定是Mac OS和Python的问题,因为它仍然无法工作,没有错误或任何东西,只是无法移动画布框架。谢谢你的回复!将标签放在正确的窗口中无疑是朝着正确的方向迈出的一步:似乎做不到这一点,不清楚为什么。-这是因为bbox只统计画布项,即通过create_*方法之一创建的对象。它不知道任何关于用包、位置或网格添加到画布上的小部件的信息。谢谢你的点金术布莱恩。