2014-04-14 3 views
0

레이블에 n_clusters_ 변수를 인쇄하려고하지만 업데이트 중이 아닙니다. n_clusters_의 계산은 다른 클래스에 있습니다. 하지만 이미 전역 변수로 설정했습니다.파이썬에서 변수 값을 출력하십시오. Tkinter 레이블

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_ 변수를 인쇄해야합니다

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_이 계산되는 클래스는 다음과 같습니다이 코드입니다. 가능한가?

답변

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