2016-08-11 79 views
0
from tkinter import * 

class MainBattle(Frame): 
    def __init__(self, parent): 
     Frame.__init__(self, parent) 
     self.parent = parent   
     self.initUI() 
    def initUI(self): 
     global canvas 
     self.parent.title('Python') 
     self.pack(fill = BOTH, expand = 1) 
     canvas = Canvas(self) 
     self.Label_My = Label(self, text = 'MyObject') 


     self.Label_My.place(x = 470, y = 35) 
     canvas.pack(fill = BOTH, expand = 1) 
     canvas.update() 
    def aa(self): 
     self.Label_My['text'] = 'HisObject' 

def Change(): 
    Label_My['text'] = 'HisObject' 

root = Tk() 
ex = MainBattle(root) 
root.geometry('700x500') 

它應該使用全局方法嗎? 如果可能的話,我會定義類中的標籤,並在類之外更改它的文本。更改類tkinter畫布的文字

回答

2

您不需要全局變量。您可以參考實例,它允許您訪問所有實例變量:

ex.Label_My["text"] = "HisObject" 
+0

它比使用全局方法更方便。但是,感謝都幫助我:) – Montague27

1

如果您的問題是「我可以使用全局設置來自課堂外的變量值」,那麼是的。 無論何時您想要更改全局變量的值,都需要編寫全局變量。

def changetext(): 
    global label_text 
    label_text = "new text"