在Python Tkinter标签中打印变量值

时间:2014-04-14 23:41:03

标签: python tkinter

我想在标签中打印n_clusters_变量,但它没有更新。 n_clusters_的计算在另一个类中。但我已经将它设置为全局变量。这是代码:

class nCluster():
    def __init__(self):
        label = Label(LabelHasil, text="Jumlah cluster yang ditemukan : ")
        label.pack(side=LEFT, padx=5, pady=5)
    def n_cluster(self):
        cluster_label = Label(LabelHasil, textvariable=n_clusters_)
        cluster_label.pack(side=LEFT, padx=5, pady=5)
show_n_cluster = nCluster()

这是计算n_clusters_的类:

class Proses:
    def __init__(self):
        button = Button(window, text="Proses", command=lambda: stdbscan(self), width=10)
        button.pack()
    def stdbscan(self):
         ...
        global n_clusters_
        n_clusters_ = len(set(labels)) - (1 if -1 in labels else 0) 
show_proses = Proses()

我需要在n_clusters_变量更新时打印它。有可能吗?

1 个答案:

答案 0 :(得分:1)

你定义nCluster.n_cluster应该创建和打包你的标签,但永远不要打电话给它。这实际上并不需要在它自己的方法中,只需在nCluster.__init__的末尾抛入它。

最大的问题是,您需要n_clusters_ tkinter.StringVar才能正确更新。

class Proses:
     ...
    def stdbscan(self):
     ...
    global n_clusters_
    n_clusters_ = StringVar()
    n_clusters_.set( len(set(labels)) - (1 if -1 in labels else 0) )
相关问题