python - python tkinter Toplevel() 中的滚动条显示但不滚动
问题描述
我查看了所有可用的已回答问题,但无济于事。我正在使用 Mac OS X High Sierra 并且我的 Scrollbar 小部件显示但不滚动窗口,有什么建议吗?
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()
解决方案
里面什么都没有scrollFrame
。
标签是装在里面的popup
,不是装在里面的scrollCanvas
scrollCanvas.config(scrollregion=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()
推荐阅读
- c# - 如何将一串 0 和 1 转换为布尔数组
- python - 当我输入时,它说无效选项
- python - 使用 Python Bottle 生成物品不起作用
- c++ - boost::filesystem::create_directory 抛出了 boost::filesystem::filesystem_error: Bad address
- android - 从抽屉中调用活动时应用程序关闭
- r - 导入具有多种记录类型的文件
- javascript - Socket.io 客户端无法连接到服务器
- excel - 如何使滚动条为我的颜色选择器着色?
- swift - Swift / Cocoa:如何观察文件夹的变化?
- python - 如何在张量流中水平翻转标记的方向