所以我在这里有滚动条的代码:
master = tk.Tk()
master.geometry("200x200")
scrollbar = tk.Scrollbar(master)
scrollbar.pack(side="right", fill="y")
text = tk.Text(master, yscrollcommand=scrollbar.set)
text.insert("1.0", "Hello")
text.pack()
text.configure(state="disabled", highlightthickness=0)
scrollbar.config(command=text.yview)
master.mainloop()
滚动条有效,但它会弹出我程序中的每一页。我有一个包含多个页面和类的程序,我希望在单击一个带有滚动条的特定页面的按钮时弹出滚动条。滚动条不断弹出所有页面,包括主页,我找不到隐藏它的方法。
这是我想放置scrollbar
的页面:
class CookiesBiscuits(tk.Frame):
def __init__(self, parent, controller):
tk.Frame.__init__(self, parent)
label = tk.Label(self, text="Ingredients", font=LARGE_FONT)
label.pack(pady=10,padx=10)
backButton = tk.Button(self, text="Back",
command=lambda: controller.show_frame(PageTwo))
backButton.pack()
#scrollbar
master = tk.Tk()
master.geometry("200x200")
scrollbar = tk.Scrollbar(master)
scrollbar.pack(side="right", fill="y")
text = tk.Text(master, yscrollcommand=scrollbar.set)
text.insert("1.0", "Hello")
text.pack()
text.configure(state="disabled", highlightthickness=0)
scrollbar.config(command=text.yview)
master.mainloop()
如果有人有办法让我隐藏滚动条,我会非常感激。
答案 0 :(得分:1)
您复制的代码是为每个页面设计的独立对象。页面中的所有小部件都由页面管理。
如果您希望页面包含滚动条和文本小部件,那么这些小部件需要将该页面作为父级:
scrollbar = tk.Scrollbar(self)
scrollbar.pack(side="right", fill="y")
text = tk.Text(self, yscrollcommand=scrollbar.set)
您还需要删除以下语句,因为在您暗示的评论中,您实际上并不需要或需要另一个窗口(此外还有创建Tk
的第二个实例并调用{{1}的事实第二次不是你应该做的事情)
mainloop