2017-04-26 1 views
0

파이썬으로 앱을 만들려고합니다. 대부분의 경우 첫 번째 라디오 버튼을 제외한 모든 라디오 버튼이 이미 선택되어 있으며 첫 번째 라디오 버튼은 호버링 후 선택됩니다. 이 문제는 10 번 중 9 번 발생하며 의도 한대로 작동하면 9 번 발생합니다.실행시 tkinter의 라디오 버튼이 이미 선택되었습니다.

코드는 다음과 같습니다. EDIT : 코드가 다시 채워집니다. 복사 - 붙여 넣기 중에는 사라 졌다고 생각합니다. 죄송합니다!

import sys 
from Tkinter import * 

i = 0 
#for i in range(0, 10): 
# print i 

macro_sheet_names = [1, 2, 3, 4] 
print len(macro_sheet_names) 

root = Tk() 
var = IntVar() 

def sel(): 
    selection = "You selected the option " + str(var.get()) 
    label.config(text = selection) 
    print ('Tab selected: ' + str(var.get())) 
    root.destroy() 
# sys.exit() 
# root.withdraw() 

i = 0 
for i in range (0, len(macro_sheet_names)): 
    R = Radiobutton(root, text = macro_sheet_names[i], variable = var, value = i, command = sel) 
    R.pack(anchor = W) 


label = Label(root) 
label.pack() 
root.mainloop() 

print ('Exiting...') 
sys.exit() 
+2

들여 쓰기가 꺼져 있습니다. 문제를 해결하십시오. – asongtoruin

+0

이상합니다. 들여 쓰기 오류를 수정하면 코드가 예상대로 작동합니다. 터미널이나 IDLE 또는 다른 IDE에서 직접 실행하고 있습니까? –

+0

안녕하세요, 고정 된 들여 쓰기입니다. 여전히 같은 방식으로 행동합니다. – Yashvardhan

답변

1

나를 위해 그것은 수정과 함께 파이썬 3에서 작동합니다. 이것을 시도하십시오 :

import sys 
from Tkinter import * 

i = 0 
#for i in range(0, 10): 
# print i 

macro_sheet_names = [1, 2, 3, 4] 
print (len(macro_sheet_names)) 

root = Tk() 
var = IntVar() 

def sel(): 
    selection = "You selected the option " + str(var.get()) 
    label.config(text = selection) 
    print ('Tab selected: ' + str(var.get())) 
    root.destroy() 
    # sys.exit() 
    # root.withdraw() 

i = 0 
for i in range (0, len(macro_sheet_names)): 
    R = Radiobutton(root, text = macro_sheet_names[i], variable = var, value = i, command = sel) 
    if i == 0: R.select() 
    R.pack(anchor = W) 


label = Label(root) 
label.pack() 
root.mainloop() 

print ('Exiting...') 
sys.exit() 

단순히 첫 번째 라디오 박스를 선택하기 만하면됩니다.

+0

왜 var.set (0)을 사용하지 않겠습니까? – asongtoruin

+0

안녕하세요. 프로그램이 'Exiting ...'을 인쇄하여 대부분 종료되지는 않지만. 거기에 무엇이 잘못 됐는지 알아 내도록 도와 주시겠습니까? – Yashvardhan

+0

당신이 무엇을 바꾸 었는지 알기가 어렵습니다. 그걸 강조해 주시겠습니까? – zondo

관련 문제