입력 필드의 사용자가 입력 한 값을 사용하여 동시에 여러 수학 방정식을 수행하려는 버튼을 누르면 목록에서 클래스로 여러 인스턴스 이름을 시도합니다 .tkinter 버튼을 사용하여 클래스에 목록 값 전달
예를 들면 다음과 같습니다. aud_non_comm_short/aud_non_comm_long & cad_non_comm_short/cad_non_comm_long 및 둘 다에 대한 결과를 레이블에 표시합니다. 당신이 그 (것)들에게 같은 이름 때문에 당신은, 당신의 변수와 함수의 이름을 엉망
from tkinter import *
from tkinter import ttk
class CoTValues:
def non_comm_short(self, master, e_row):
self.master = master
self.e_row = e_row
self.non_comm_short = IntVar()
entry = Entry(self.master, textvariable=self.non_comm_short, width="9")
entry.grid(row=self.e_row, column="1", padx="5", pady="5")
def non_comm_long(self, master, e_row):
self.master = master
self.e_row = e_row
self.non_comm_long = IntVar()
entry = Entry(self.master, textvariable=self.non_comm_long, width="9")
entry.grid(row=self.e_row, column="2", padx="5", pady="5")
def display_data(self):
print(self.non_comm_short.get())
print(self.non_comm_long.get())
root = Tk()
root.minsize(width="500", height="500")
aud_non_comm_short = CoTValues()
aud_non_comm_short.non_comm_short(root, 1)
aud_non_comm_long = CoTValues()
aud_non_comm_long.non_comm_long(root, 1)
cad_non_comm_short = CoTValues()
cad_non_comm_short.non_comm_short(root, 2)
cad_non_comm_long = CoTValues()
cad_non_comm_long.non_comm_long(root, 2)
var_name = [aud_non_comm_short, aud_non_comm_long]
btn = ttk.Button(root, text="Submit", command=lambda: for x in range(len(var_name): var_name[x].display_data())
btn.grid(row="4", column="3")
root.mainloop()
왜이 경우'람다 '를 사용하고 있습니까? 왜 그냥 정상적인 기능을 호출하지? –