我有多个Tkinter列表框,可以使用单个滚动条一起滚动,但是我也希望它们一起滚动,以便在任何列表框上进行鼠标滚轮活动。
这该怎么做?
我当前的代码基于此处讨论的最后一个模式:http :
//effbot.org/tkinterbook/listbox.htm
仅使用滚动条时,它可以很好地工作,但是使用鼠标滚轮时,列表框可以独立地滚动。
解决问题的方法与将两个小部件连接到单个滚动条的方法几乎相同:为鼠标滚轮创建自定义绑定,并使这些绑定影响两个列表框,而不只是一个列表框。
唯一真正的窍门是,您会根据平台在鼠标滚轮上获得不同的事件:Windows和Mac获取<MouseWheel>
事件,Linux获取<Button-4>
和<Button-5>
事件。
这是一个示例,在我的Mac上使用python 2.5进行了测试:
import Tkinter as tk
class App:
def __init__(self):
self.root=tk.Tk()
self.vsb = tk.Scrollbar(orient="vertical", command=self.OnVsb)
self.lb1 = tk.Listbox(self.root, yscrollcommand=self.vsb.set)
self.lb2 = tk.Listbox(self.root, yscrollcommand=self.vsb.set)
self.vsb.pack(side="right",fill="y")
self.lb1.pack(side="left",fill="x", expand=True)
self.lb2.pack(side="left",fill="x", expand=True)
self.lb1.bind("<MouseWheel>", self.OnMouseWheel)
self.lb2.bind("<MouseWheel>", self.OnMouseWheel)
for i in range(100):
self.lb1.insert("end","item %s" % i)
self.lb2.insert("end","item %s" % i)
self.root.mainloop()
def OnVsb(self, *args):
self.lb1.yview(*args)
self.lb2.yview(*args)
def OnMouseWheel(self, event):
self.lb1.yview("scroll", event.delta,"units")
self.lb2.yview("scroll",event.delta,"units")
# this prevents default bindings from firing, which
# would end up scrolling the widget twice
return "break"
app=App()
问题内容: 您可以将多个表单序列化为一个表单,以便仅发出一个post或ajax请求吗?我已经搜索过了,全部都是通过post / ajax明显地提交每个表单。 问题答案: 当您使用jQuery 函数时,它只是将您的表单转换为format的字符串。因此,您当然可以将此函数应用于两种形式,并在两者之间连接一个结果,然后在ajax调用中使用结果。您希望进行一些检查以确保在进行串联时两个字符串都不为空。
你好,伙计们,我想使我的列表视图这样,一个项目滚动一次和平滑。这里是我尝试到目前为止,但没有运气:(请帮助和感谢提前 自定义ListView类 }
问题内容: 我有两个ListView要滚动在一起的对象。它们 并排放置,因此,如果一个滚动一定数量,则另一个滚动相同 数量。我已经找到了一些有关如何执行此操作的示例,但我相信它们 依赖于ListView高度相同的项目(如果我 错了,请纠正我)。我的一个ListView对象中的项目比另一个对象中的项目高 ,跨越2-3个项目。 如何将这两个对象“锁定”在一起? 编辑:这是我所拥有的屏幕截图,也许它将更
问题内容: 我希望在Tkinter中创建类似于表的内容,但不一定必须是一个表。 我想例如创建标题“ Name1”,“ Name2”,“ Value”,并且在每个标题下方我希望有几行空白。 然后,我希望稍后使用我计算出的值或名称的字符串值填写这些行(因此称为Label)。 对于“ Name2”,我实际上希望整个列都为一个下拉菜单。我已经自己创建了一个代码,但不确定如何将其合并到此“表”中。 例如,是
问题内容: 在Python模块中,和用于分别标识左,中和右按钮的鼠标单击。 同样,用于返回键的按下。 在哪里可以找到所有此类事件的列表,包括各种键盘键的名称? Tcl绑定手册没有那些。 问题答案: 可以在effbot.org或New Mexico Tech提供 的文档中找到有关绑定和事件的常规列表,而此处除了原始文档之外,还列出了几个键的名称。 以下是最常见事件的摘要,并解释了一些按键名称:
问题内容: 我的目标是向具有多个标签的框架添加垂直滚动条。一旦框架内的标签超过框架的高度,滚动条应自动启用。搜索之后,我发现了这个有用的帖子。根据该帖子,我了解到要实现我想要的功能(如果我错了,请纠正我,我是一个初学者),我必须先创建一个,然后在该框架内创建一个并将滚动条粘贴到该框架上好。之后,创建另一个框架并将其作为窗口对象放在画布内。所以,我终于想出了这个: 我做对了吗?有没有更好/更聪明的方