Python 3.4通过数据列表使鼠标单击事件前进

时间:2015-10-30 19:06:54

标签: python list python-3.x events tkinter

我有一个嵌套的数据列表(三维),我编写了一个程序,给我一个通用的数据分析,并以图形方式报告。

我想通过推动TKINTER按钮来完成这些图表。

我已将按钮指定为$question->answers->add(new Answer([...])); 并拥有tkinter command=NextDataSet。存在一个非常好的tk.mainloop()函数。

然而,写graphData()已经变成了令人困惑的经历。

我考虑过运行主列表中的每个项目,但我希望每次都停止。因此,我没有在命令中放置循环。

NextDataSet

有关如何使用tkinter鼠标按钮事件逐个显示列表中的下一个数据集的任何想法?我考虑来回传递参数......

1 个答案:

答案 0 :(得分:1)

使用简单的计数器可以完成下一个数据集。请注意,CamelCaseNames用于类。函数使用所有lower_case_with_underscores。它可以帮助其他人阅读和理解您的代码。

import sys
if sys.version_info[0] < 3:
    import Tkinter as tk     ## Python 2.x
else:
    import tkinter as tk     ## Python 3.x

class CycleThroughClass(object):
    def __init__(self, master):
        self.display_1=tk.Label(master, bg="lightblue")
        self.display_1.grid(row=0, column=0, sticky="nsew")
        self.display_2=tk.Label(master, bg="lightgreen")
        self.display_2.grid(row=0, column=1, sticky="nsew")

        tk.Button(master, text="next item", bg="khaki",
                  command=self.next_data_set).grid(row=1,
                  column=0, sticky="nsew")

        tk.Button(master, text="Quit", bg="orange",
                  command=master.quit).grid(row=2, column=0, sticky="nsew")

        self.ctr=0
        self.questions=[["one", 1], ["two", 2], ["three", 3],
                        ["four", 4], ["five", 5]]
        self.next_data_set()

    def next_data_set(self):
        if self.ctr < len(self.questions):
            question, number=self.questions[self.ctr]
            self.display_1.config(text=question)
            self.display_2.config(text=str(number))
            self.ctr += 1
        else:
            self.display_1.config(text="Sorry, no more")
            self.display_2.config(text="")


master=tk.Tk()
CT=CycleThroughClass(master)
master.mainloop()