나는 Tkinter 모듈을 사용하여 파이썬으로 GUI를 만들려고하는데, 그 중 일부는 사용자에게 2 개의 라디오 박스 옵션을 제공하고 그들이 원하는 것을 선택하는 것을 포함합니다. 그들이 틱하는 상자에 따라 다른 결과를 반환하는 다른 함수를 실행합니다. 결과를 창 클래스 외부에서 사용하려고합니다. 그러나 클래스 내부에서 클래스 외부로 값을 보내는 방법을 알지 못합니다. 나는 그것의 상당히 간단하지만 나는 삶의 나를 위해 일할 수 없다고 확신한다.Tkinter의 라디오 박스에서 값 받기 - Python
내 현재 코드는 다음과 같습니다
class BatchIndiv():
def __init__(self, master):
self.master=master
self.startwindow()
self.b=0
def startwindow(self):
self.var1 = IntVar()
self.textvar = StringVar()
self.Label1=Label(self.master, text="Batch or indivdual import?")
self.Label1.grid(row=0, column=0)
self.Label2=Label(self.master, textvariable=self.textvar)
self.Label2.grid(row=2, column=0)
self.rb1 = Radiobutton(self.master, text="Batch", variable=self.var1,
value=1, command=self.cb1select)
self.rb1.grid(row=1, column=0, sticky=W)
self.rb2 = Radiobutton(self.master, text="Individual", variable=self.var1,
value=2, command=self.cb1select)
self.rb2.grid(row=1, column=1, sticky=W)
self.Button1=Button(self.master, text="ok", command=self.ButtonClick)
self.Button1.grid(row=1, column=2)
def ButtonClick(self):
if (self.var1.get())==1:
b=BatchImport()
return b
self.master.quit()
self.master.destroy()
elif (self.var1.get())==2:
b=IndivImport()
return b
self.master.quit()
self.master.destroy()
else: pass
def cb1select(self):
return self.var1.get()
#End of class definition.
#Code:
root=Tk()
window=BatchIndiv(root)
b=BatchIndiv.ButtonClick.b
root.mainloop()
....
는 블랙 박스로 BatchImport 및 IndivImport 기능을 치료, 그들은 단지 내가 ButtonClick 내부 b를 변수에()를 할당 정수 값을 반환합니다. 그 값을 root.mainloop() 아래에서 할 필요가 있습니다 (즉 .... ....). 그러나 그것을 얻는 방법을 모르겠습니다. Tkinter는 특히 모든 사람이 일을하는 데있어 다른 방법을 가지고 있기 때문에 매우 짜증나게합니다. 온라인 문서가 결코 똑같지는 않습니다. 여러 사람이 작성한 것을 시도하고 더 멋진 오류 메시지를주었습니다.
모든 도움을 주시면 감사하겠습니다.
PS - 버튼을 눌렀을 때 창을 닫고 나머지 코드에 값 b를 보내면 어떻게하면 비단뱀을 완전히 종료 할 수 있습니까? 당신이 볼 수 있듯이 .quit() 및 .destroy()를 사용해 보았지만 아무런 운이 없었습니다.
그래, 내가 그 일을 끝내 었어. 감사. –