【问题标题】:Tkinter scrollbar slider does not move?Tkinter 滚动条滑块不动?
【发布时间】:2021-04-13 15:32:18
【问题描述】:

我正在开发一个 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()

【问题讨论】:

    标签: python user-interface tkinter slider scrollbar


    【解决方案1】:

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

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

    【讨论】:

      【解决方案2】:

      您创建两个 Scrollbar - hv - 并显示第一个滚动条 h,但您将 Text 分配给第二个滚动条 v,但您没有显示。

      您必须将正确的Scrollbar 分配给Text

      import tkinter as tk
      
      root = tk.Tk()
      root.title("References")
      
      # rename `h` to `v`
      v = tk.Scrollbar(root)    
      v.pack(side=tk.RIGHT, fill=tk.Y)
      
      # rename `v` to `h`
      #h = tk.Scrollbar(root)
      
      t = tk.Text(root,width=90, wrap=tk.NONE, yscrollcommand=v.set)
      
      for _ in range(20):
          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()
      

      【讨论】:

      • 天哪,原来是这样,非常感谢你看到这个!!!
      猜你喜欢
      • 2015-04-03
      • 2016-07-07
      • 1970-01-01
      • 1970-01-01
      • 2021-11-29
      • 1970-01-01
      • 1970-01-01
      • 2018-04-25
      相关资源
      最近更新 更多