首页 > 解决方案 > Tkinter 滚动条滑块不动?

问题描述

我正在开发一个 GUI,按下某个按钮会产生一个弹出窗口,该窗口应该显示一个长的、可滚动的文本列表。我正在使用弹出窗口中的文本小部件来显示此文本。我添加了一个滚动条,它出现在弹出窗口中就好了。但是,当您尝试滚动时,移动滚动条上的滑块不会执行任何操作。滑块甚至不动。但是当我使用鼠标滚轮时,文本列表会响应并滚动。请参阅下面的代码,了解分配给我的按钮的命令“围兜”:

def bib():
  root = tk.Tk()
  root.title("References")

  h=tk.Scrollbar(root)
  h.pack(side=tk.RIGHT,fill=tk.Y)
  v=tk.Scrollbar(root)

  t=tk.Text(root,width=90, wrap=tk.NONE, yscrollcommand=v.set)

  t.insert(tk.END,"number 1\n")
  t.insert(tk.END,"number 2\n")
  t.insert(tk.END,"number 1\n")
  t.insert(tk.END,"number 2\n")
  t.insert(tk.END,"number 1\n")
  t.insert(tk.END,"number 2\n")
  t.insert(tk.END,"number 1\n")
  t.insert(tk.END,"number 2\n")
  t.insert(tk.END,"number 1\n")
  t.insert(tk.END,"number 2\n")
  t.insert(tk.END,"number 1\n")
  t.insert(tk.END,"number 2\n")
  t.insert(tk.END,"number 1\n")
  t.insert(tk.END,"number 2\n")

  t.pack(side=tk.TOP, fill=tk.X)
  t.configure(font=("Times New Roman", 10))
  v.config(command=t.yview)

  t.mainloop()

标签: pythonuser-interfacetkintersliderscrollbar

解决方案


滚动条及其关联的小部件需要双向通信。您已经创建了从文本小部件到滚动条的单向通信,但不是相反。

水平滚动条的命令需要调用xview可滚动控件的方法,垂直滚动条的命令需要调用yview方法。


推荐阅读