Обычно я помещаю свои объекты tkinter в класс. Это значительно упрощает обмен объектами между функциями. Вот пример того, как этого можно достичь с помощью предоставленного вами примера кода.
from tkinter import Toplevel, Scrollbar, Listbox, Text, HORIZONTAL, END
class Help:
def __init__(self):
self.help = Toplevel()
self.help.title("Help")
self.help.geometry("1000x650")
self.help.resizable(0,0)
self.helpFiles = ['Test ' + str(i) for i in range(100)]
self.listy = Scrollbar(self.help)
self.listy.place(x=143, y=20, height=565)
self.listHelp = Listbox(self.help, height=35, width=20)
self.listHelp.place(x=20, y=20)
self.listHelp.config(yscrollcommand=self.listy.set)
self.listy.config(command=self.listHelp.yview)
for item in self.helpFiles:
self.listHelp.insert(END, item)
self.texty = Scrollbar(self.help)
self.texty.place(x= 977, y= 20, height = 565)
self.textx = Scrollbar(self.help, orient= HORIZONTAL)
self.textx.place(x = 175, y= 583, width = 800)
self.helpText = Text(self.help, bg="white", height=35, width=100)
self.helpText.place(x=175, y=20)
self.helpText.configure(state="disabled")
self.helpText.config(yscrollcommand=self.texty.set, xscrollcommand=self.textx.set)
self.texty.config(command=self.helpText.yview)
self.textx.config(command=self.helpText.xview)
self.listHelp.bind("<<ListboxSelect>>", self.theFunction)
def theFunction(self, event):
print(self.listHelp.get(self.listHelp.curselection()))
# your code here
if __name__ == '__main__':
test = Help()
test.help.mainloop()
Кроме того, я изменил привязку вашей функции с <Button-1>
на <<ListboxSelect>>
. Я полагаю, что у каждого есть та функциональность, которую вы хотели.