2012-06-26 4 views
1

다음 코드는 수업을 사용하기위한 첫 번째 시도입니다. Tkinter의 Entry 위젯에서 값을 검색하고자 할 때 주로 변수 상자를 전달하려고합니다.클래스/def에서 변수 전달하기와 Tkinter에서 명령어 사용하기

Tkinter 위젯에서 '명령'으로 내부에서 정의를 호출하는 데 어려움을 겪고 있습니다.

악의적으로 작성된 클래스 코드가 잘못된 부분을 설명하고 상자 값을 가져올 수 있는지 여부를 설명 할 수 있다면 매우 행복 할 것입니다.

이전 질문의 반복 인 경우 사과드립니다.

class Start(): 
    def ChoiceBox(self, choice): 


     column = 0 
     if choice == "Fixed": 
      choice_frame.grid_forget()  
      tkMessageBox.showinfo("Message", "No optimisation, value fixed.") 
     elif choice == "List": 
      i = [0, 1, 2, 3] 

      for i in i: 
       choice_title = Label(choice_frame, text='Value %g'% float(i+1), bg='white', borderwidth=0, width=0) 
       choice_title.grid(row=0, column=column+i, sticky="nsew", padx=1, pady=1) 

       self.box = Entry(choice_frame, bg='white', borderwidth=0, width=0) 
       self.box.grid(row=1, column=column+i, sticky="ew", padx=1, pady=1) 

       tkMessageBox.showinfo("Message", "Please fill in list values.") 


     elif choice == "Interval" or "Optimisation": 
      i = [0, 1] 
      choice_title1 = Label(choice_frame, text='Min Value', bg='white', borderwidth=0, width=0) 
      choice_title1.grid(row=0, column=column, sticky="nsew", padx=1, pady=1) 
      choice_title2 = Label(choice_frame, text='Max Value', bg='white', borderwidth=0, width=0) 
      choice_title2.grid(row=0, column=column+1, sticky="nsew", padx=1, pady=1) 
      for i in i: 
       box = Entry(choice_frame, bg='white', borderwidth=0, width=0) 
       box.grid(row=1, column=column+i, sticky="nsew", padx=1, pady=1) 
       tkMessageBox.showinfo("Message", "Enter Min/Max values.") 


    def StartBut(self): 
    if self.box.get() == "": 
      pass 
     else: 
      value = self.box.get() 

list1 = OptionMenu(frame_table, variablelist, 'Fixed', 'List', 'Interval', 'Optimisation', command=Start.ChoiceBox) 

but1 = Button(frame_but, text='Start', command=Start.StartBut) 

UPDATE : 지금 점점 오전 오류 : 첫 번째 인수 (대신 STR 인스턴스를 가지고)로 '언 바운드 방법'] 선택()가 '시작 인스턴스 호출해야합니다.

답변

2

def ChoiceBox(choice):def ChoiceBox(self, choice)해야한다 :

는 파이썬 클래스는 보정 주셔서 감사합니다

+0

here.를 작동하는 방법에 대한 자세한 읽기. 내가 찾은 수업 튜토리얼을 이해하기가 정말 힘들어서 stackoverflow에 왔습니다. 나중에 Tkinter와 관련된 명령에서 클래스의 정의를 호출하는 데 문제가 있습니다. – user2063

+0

@ user2063 거의 모든 GUI 프레임 워크는'Classes'에 대한 기본적인 지식을 필요로하기 때문에 기초를 분명히하기 위해 책이나 온라인 튜토리얼을 먼저 읽어야합니다. –

+0

나는 알고있다. 그러나 나는 주어진 시간 동안 나는이 작은 점을 정리할 필요가 없다. 나는 내가하고있는 일을 실제로 알지 못해서이 일을해야한다는 것을 귀찮게 여기며 이해하기를 열망한다. – user2063

관련 문제