2016-12-13 7 views
0

안녕하세요 tkinter의 checkboxen에 문제가 있습니다. 누군가 내 잘못이 어디에 있다고 말할 수 있습니까?Tkinter : 체크 버튼과 목록

def edit_contact_gui(self): 
    """GUI to edit the created contacts.""" 
    self.edit_contact_wd = tk.Tk() 
    self.edit_contact_wd.title('Edit Contacts of the Phonebook:"%s"'\ 
           % self.book) 
    self.button_edit = tk.Button(self.edit_contact_wd, text = 'Edit',\ 
           command = self.edit_contact) 


    try: 
     with open('%s.txt' % self.book, 'rb') as file: 
      book = pickle.load(file) 
      x = 1 
      self.var_lst = [] 
      for i in book: 
       var = tk.IntVar() 
       tk.Label(self.edit_contact_wd, text = i).grid(row = x, \ 
                   column = 0) 

       tk.Checkbutton(self.edit_contact_wd, text = 'edit', \ 
           variable = var).grid(row = x, column = 1) 
       self.var_lst.append(var.get()) 

       x += 1 

      self.button_edit.grid(row = x+1, column = 1) 

    except FileNotFoundError: 
     tk.Label(self.edit_contact_wd, text = 'The phonebook has no entrys!', fg = 'red').grid(row = 1, column = 0) 

    self.edit_contact_wd.mainloop() 

def edit_contact(self): 
    print(self.var_lst) 

내 GUI 출력이 작동하지만 프로그램이 나에게 0으로 가득 찬 List [0,0,0,0,0]을 반환합니다. 내 의견으로는 체크 된 체크 박스는 1을 반환하지만, 체크 박스는 그렇지 않다. 왜? 너 나 좀 도와 줄 수있어?

+0

가 읽어 보시기 바랍니다 사용해야하는 [A를 만드는 방법 –

+0

'edit_contact_gui'가 호출 될 때까지 이미 GUI가 실행 중이십니까? 아니면 처음으로 작성한 것입니까? 'Tk'의 예를 먹었습니까? –

+0

이미 GUI가 있습니다. to 함수는 오직 함수 아래에 있습니다. (팝업 윈도우) – Fl4mer

답변

0

당신은 IntVar (var.get())

self.var_lst.append(var) # without .get() 

에서 IntVar (var) 목록에없는 값을 유지해야하고 edit_contact() 당신이 get()

for var in self.var_lst: 
    print(var.get()) 
+0

하지만 체크 박스가 표시된 경우에만 0으로 설정하고 1로 설정하지 않으면 – Fl4mer

+0

체크 버튼을 선택하고 '편집'버튼을 클릭하면 '1'을 가져야합니다. 콘솔/터미널/cmd.exe/powershell에서 실행할 때 다른 문제가 있거나 프로그램에서 몇 가지 오류 메시지가 표시 될 수 있습니다. 나는 그것을 검사 할 수없고 코드의이 부분에서 어떤 문제도 보지 못한다. – furas

+0

btw : @BryanOakley가 말한 것처럼 - 만약 당신이 두 개의'Tk()'또는 두 개의'mainloop()'을 가지고 있다면'tkinter'가 제대로 작동하지 않을 수 있습니다. – furas

관련 문제