Python3.4使鼠标单击事件通过一个d列表前进

2024-09-29 23:26:56 发布

您现在位置:Python中文网/ 问答频道 /正文

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

我想通过一个TKINTER按钮来处理这些图表。在

我给按钮分配了一个command=NextDataSet,并有一个tkintertk.mainloop()。存在一个graphData()函数,它工作得很好。在

然而,写NextDataSet却变成了一种令人困惑的经历。在

我曾想过要浏览主列表中的每一项,但我希望它每次都停止。因此,我没有在命令中添加循环。在

 def NextDataSet(): 
     for eachDataSet in BigList:
         graphData(eachDataSet)

有什么想法,如何用tkinter鼠标按钮事件逐个显示列表中的下一个数据集?我考虑过来回传递参数。。。在


Tags: 数据程序图形列表tkinter报告方式图表
1条回答
网友
1楼 · 发布于 2024-09-29 23:26:56

用一个简单的计数器就可以得到下一个数据集。注意,CamelCaseNames用于类。函数使用所有带下划线的小写字母。它帮助其他人阅读和理解您的代码。在

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()

相关问题 更多 >

    热门问题