我的代码本身运行良好,但不会滚动浏览标签(这是我想要实现的)。我不想使用画布或列表框或任何东西。
import tkinter as tk
master = tk.Tk()
scrollbar = tk.Scrollbar(master).pack(side=tk.RIGHT, fill=tk.Y,command=tk.yview)
label = tk.Label(text="llklkl")
label.place(x=100,y=500)
label2 = tk.Label(text="llklkl")
label2.place(x=1000,y=5000)
tk.mainloop()
您好,欢迎来到 SO。Scrollbar
遗憾的是,tkinter小部件不能用于_tkinter.tkapp
对象,即您的主窗口master
。来自effbot.org:
此小部件用于实现滚动列表框、画布和文本字段。
和
滚动条小部件几乎总是与列表框、画布或文本小部件结合使用。水平滚动条也可以与 Entry 小部件一起使用。
这意味着您绝对必须在主窗口中创建一些小部件才能滚动任何内容,您不能只滚动窗口本身。话虽如此,如果您想将滚动条添加到列表框,那么您将这样做(也取自上述网站,您应该真正检查一下):
首先,您必须将小部件的 yscrollcommand 回调设置为滚动条的 set 方法。其次,您必须将滚动条的命令设置为小部件的 yview 方法,就像您已经做的那样,但喜欢name_of_object.yview
,而不是tk.yview
。
import tkinter as tk
master = tk.Tk()
scrollbar = tk.Scrollbar(master)
scrollbar.pack(side=tk.RIGHT, fill=tk.Y)
listbox = tk.Listbox(master, yscrollcommand=scrollbar.set)
for i in range(20):
listbox.insert(tk.END, str(i))
listbox.pack(side=tk.LEFT, fill=tk.BOTH)
scrollbar.config(command=listbox.yview)
master.mainloop()
另外,将其包装scrollbar
在单独的行中。这将在可滚动Listbox
小部件中生成一个数字从 1 到 50 的窗口。如果我没听错,您希望能够在标签之间滚动吗?好吧,我想您必须为此使用某种包装小部件,我建议您使用Canvas
. 但这真的取决于你,我相信你会自己弄清楚的。如果您需要更多帮助,请告诉我 - 但请在询问之前阅读文档;-)
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句