2013-05-13 5 views
0

저는 tkinter로 스크립트 작업을하고 있지만 이상한 일이 일어나고 있습니다.라디오 버튼이 잘못된 값을 수정하고 있습니다. tkinter

way=False 
RadioButton0=Radiobutton(root,text="From",variable=way,value=False) 
RadioButton1=Radiobutton(root,text="To",variable=way,value=True) 
RadioButton0.grid(column=0,row=2) 
RadioButton1.grid(column=1,row=2) 

그리고 텍스트 입력 필드 :

내가 두 개의 라디오 버튼이 나는 1를 입력 할 때,

entryValue=0 
entryField=Entry(root,textvariable=entryValue) 
entryField.grid(column=0,row=4) 

내가 입력 필드에 0 입력

RadioButton0이 자동으로 선택되어, RadioButton1이 선택됩니다 다른 값의 경우 둘 다 선택됩니다 ... 반대로 작동합니다 : RadioButton0을 선택하면 입력 필드가로 변경됩니다.을 선택하고 RadioButton1을 선택하면 입력 필드가 1 ...으로 변경됩니다. 또한 entryValue은 나중에 0으로 표시됩니다. 변수 way은 라디오 버튼으로 만 수정해야합니다 ...

왜 그런가요? 내가해서는 안되는 일을하고 있니? 어떻게 해결할 수 있습니까?

답변

1

명령을 사용하여 메소드를 호출하고 값을 설정할 수 있습니다. 첨부 된 코드를 참조하십시오.

def sel(): 
    selection = "You selected the option " + str(var.get()) 
    label.config(text = selection) 


root = Tk() 
frame = Frame(root) 
frame.pack() 

labelframe = LabelFrame(frame, text="This is a LabelFrame") 
labelframe.pack(fill="both", expand="yes") 


var = IntVar() 
R1 = Radiobutton(labelframe, text="Option 1", variable=var, value=1, 
        command=sel) 
R1.pack(anchor = W) 

R2 = Radiobutton(labelframe, text="Option 2", variable=var, value=2, 
        command=sel) 
R2.pack(anchor = W) 

R3 = Radiobutton(labelframe, text="Option 3", variable=var, value=3, 
        command=sel) 
R3.pack(anchor = W) 


label = Label(labelframe) 
label.pack() 
+0

. .. – Mirac7

+0

이 예제는 실제로 질문에 대답합니까? –

3

variabletextvariable이 아니라 내장 데이터 유형, 모두 다른 variable objects해야한다 :이 코드가 작동하고 내 많이하지 않습니다하지만 덕분에 이유를 정말 모르는

way=BooleanVar(root) 
way.set(False) 
# ... 
entryValue=StringVar(root) 
entryValue.set("0")