如何隐藏除第1页以外的某些页面上的滚动条?

时间:2017-01-18 20:52:16

标签: python tkinter

所以我在这里有滚动条的代码:

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()

如果有人有办法让我隐藏滚动条,我会非常感激。

1 个答案:

答案 0 :(得分:1)

您复制的代码是为每个页面设计的独立对象。页面中的所有小部件都由页面管理。

如果您希望页面包含滚动条和文本小部件,那么这些小部件需要将该页面作为父级:

scrollbar = tk.Scrollbar(self)
scrollbar.pack(side="right", fill="y")
text = tk.Text(self, yscrollcommand=scrollbar.set)

您还需要删除以下语句,因为在您暗示的评论中,您实际上并不需要或需要另一个窗口(此外还有创建Tk的第二个实例并调用{{1}的事实第二次不是你应该做的事情)

mainloop