python - 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()
解决方案
滚动条及其关联的小部件需要双向通信。您已经创建了从文本小部件到滚动条的单向通信,但不是相反。
水平滚动条的命令需要调用xview
可滚动控件的方法,垂直滚动条的命令需要调用yview
方法。
推荐阅读
- javascript - 如何使 React 页面仅渲染更改组件而不是整个页面?
- c++ - 如何在无头模式下运行 Qt 应用程序(不显示我的 GUI)
- angular - 在 Angular 测试中使用不同的参数多次监视相同的函数
- python - Tensorflow 自定义正则化项将预测值与真实值进行比较
- julia - 我们可以在 Julia 中自定义文件打开缓冲区大小吗
- python - 用 python 读取实时数字
- asp.net-mvc - ASP.NET MVC 操作或 API
- c# - 如何序列化 Json 文件中的 T 类型
- c# - 使用 Tablelayoutpanel 为 DGW 创建标题行
- c - 使用 C 选择性地读取文件的字符串部分