gpt4 book ai didi

python - 使用一个滚动条滚动多个列表框而不使用类

转载 作者:行者123 更新时间:2023-12-01 03:13:00 25 4
gpt4 key购买 nike

我想在 Tkinter 中使用单个(垂直)滚动条同时(同步)滚动多个列表框。

问题是 Stack Overflow 上的所有解决方案似乎都使​​用类将单个滚动条附加到多个列表框。如果可能的话,我想在不使用类的情况下做同样的事情,因为我没有任何类的经验。

这是我的代码的简化版本:

from tkinter import *
import tkinter as tk


root = Tk()

##This code will only scroll through 1 listbox.
listbox1 = Listbox(root)
listbox1.grid(row=1, column=2)
listbox2 = Listbox(root)
listbox2.grid(row=1, column=3)
scrollbary = Scrollbar(root, command=listbox1.yview, orient=VERTICAL)
scrollbary.grid(row=1, column=1, sticky="ns")

for i in range(100):
listbox1.insert("end","item %s" % i)
listbox2.insert("end","item %s" % i)

最佳答案

我改编了http://effbot.org/tkinterbook/listbox.htm中的代码这样它就可以在类之外工作。

import tkinter as tk

root = tk.Tk()

def yview(*args):
""" scroll both listboxes together """
listbox1.yview(*args)
listbox2.yview(*args)

listbox1 = tk.Listbox(root)
listbox1.grid(row=1, column=2)
listbox2 = tk.Listbox(root)
listbox2.grid(row=1, column=3)
scrollbary = tk.Scrollbar(root, command=yview)
listbox1.config(yscrollcommand=scrollbary.set)
listbox2.config(yscrollcommand=scrollbary.set)
scrollbary.grid(row=1, column=1, sticky="ns")

for i in range(100):
listbox1.insert("end","item %s" % i)
listbox2.insert("end","item %s" % i)

root.mainloop()

如果您还想用鼠标滚轮一起滚动它们,请参阅此问题的答案:Scrolling multiple Tkinter listboxes together 。答案是通过类给出的,但绑定(bind)和函数也可以在不使用类的情况下完成。

关于python - 使用一个滚动条滚动多个列表框而不使用类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42715941/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com