2014-10-15 1 views
-2
class Something: 
    def buttons(self): 
     self.button1 = Button(self.main, text = "Add User", command = x) 

    def Window(self): 
     self.main = Tk() 
     self.main.title("Welcome") 
     self.buttons.button1.grid(row  = 0, 
            column  = 0, 
            columnspan = 2, 
            rowspan = 2, pady = 5, padx = 5) 
     self.main.mainloop() 

는, I는 클래스 방법 (함수) .buttons() 통해 .Button()를 호출하여 표시 할 self.buttons로 시작 코드 행을 원한다.Tkinter : 다른 클래스 메서드에서 Button을 호출하는 방법? 여기

분명히이 코드는 작동하지 않지만이 작업을 수행 할 수있는 더 좋은 방법이 있는지 궁금합니다. 어떤 도움을 주시면 감사하겠습니다.

+0

왜 당신은 그냥 self.button1.grid'호출하지 않습니다 (...)'대신'self.buttons.button1.grid (...)'대신에? – TidB

+0

이 오류가 발생하여 AttributeError : 'Something'객체에 'button1'속성이 없습니다. – tester

+0

버튼을 한 번만 호출하면 버튼이 생성됩니다. 그 후에, 당신은'self.button1'에 의해 그를 액세스 할 수 있습니다. – TidB

답변

0

나는 당신이하려는 일을 이해하지 못하기 때문에 가능한 한 글자 그대로 질문을 할 것입니다.

이 코드를 고려
def buttons(self): 
    self.button1 = Button(self.main, text="Add User", command=x) 

당신이 self.buttons() 전화

, 하지 self.buttons.button1, self.button1라는 이름의 변수를 만들 것입니다. 당신이 Window 내에서 self.button1에 액세스하려는 경우 따라서, 먼저 지금처럼 buttons 함수를 호출 한 다음 self.button1을 사용해야합니다 :

def Window(self): 
    ... 
    self.buttons() 
    self.button1.grid(row = 0, column = 0, columnspan=2,rowspan=2,pady=5,padx=5) 
    ... 
+0

내 질문/코드의 모호함을 유감스럽게 생각합니다. 도움에 정말 감사드립니다. – tester

관련 문제