2014-04-14 69 views
0

我想在標籤中打印n_clusters_變量,但它不會更新。 n_clusters_的計算在另一個類中。但我已經將它設置爲全局變量。這是代碼:在Python中打印變量值Tkinter標籤

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_計算類:我需要打印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() 

。可能嗎?

回答

1

您定義了nCluster.n_cluster它應該創建並打包您的標籤,但絕不會調用它。這實際上並不需要用它自己的方法,只是在nCluster.__init__的末尾把它扔掉。

最大的問題是您需要製作n_clusters_ a 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))