从不同的列表框条目中获取数据以调用单个函数

时间:2019-07-23 15:26:16

标签: python tkinter

我正在制作一个程序,可以将我的成绩和评论从Google表格上传到D2L。

我的目标是从我的Google表格中填充3或4个列表框,并在单个函数中使用该信息。 print(l.get(cs))作为占位符,最终将用于调用我的Google工作表中的不同标签。

现在,我必须对go() go1()go2()进行每个列表框调用,以使它们起作用。有没有一种方法可以让他们全部呼叫go()并保留列表框中的数据?

from tkinter import *

gr7asgn=["7asgn1","7asgn2","7asgn3","7asgn4","7asgn5"]
gr8asgn=["8asgn1","8asgn2","8asgn3","8asgn4","8asgn5"]
gr9asgn=["9asgn1","9asgn2","9asgn3","9asg4n","9asgn5"]


def go():
    cs = l.curselection()[0]
    print(l.get(cs))

def go1():
    cs = l1.curselection()[0]
    print(l1.get(cs))

def go2():
    cs = l2.curselection()[0]
    print(l2.get(cs))

root = Tk()
root.geometry("800x300")
root.title("import comments")

#grade 7 list
l = Listbox(root, width=30, height=15, selectmode = EXTENDED)
l.bind("<<ListboxSelect>>", lambda x: go())
for a in gr7asgn:
    l.insert(END,a)
l.grid(row=1,column=0)

#grade 8 list
l1= Listbox(root, width=30, height=15, selectmode = EXTENDED)
l1.bind("<<ListboxSelect>>", lambda x: go1())
for a in gr8asgn:
    l1.insert(END,a)
l1.grid(row=1,column=1)

#grade 9 list
l2 = Listbox(root, width=30, height=15, selectmode = EXTENDED)
l2.bind("<<ListboxSelect>>", lambda x: go2())
for a in gr9asgn:
    l2.insert(END,a)
l2.grid(row=1,column=2)

1 个答案:

答案 0 :(得分:1)

您可以创建substr(string, start, length); substr(4.96, 0, -1); 来运行功能,该功能将立即从所有Button中获取选定的项目。

Listboxes可能需要Listbox才能在您单击其他列表框时将值保留在exportselection=False中。

curselection()

文档:Listbox