나는 tkinter를 다루는 데 많은 의문점이 있음을 알고 있습니다. 그러나 나는 그들 중 많은 것을 보았고 아무도 저를 도와주지 않는 것 같습니다.Python Tkinter는 라벨 텍스트를 변경합니다.
import tkinter
class Calculator:
def __init__(self):
window = tkinter.Tk()
window.geometry("200x300")
window.title("Calculator")
lbl = tkinter.Label(window, text="placeholder", bg="blue", textvariable="labelText")
lbl.grid(row=0, column=0, columnspan=3)
self.firstNumArray = []
self.secondNumArray = []
self.operation = ""
self.currentNum = "first"
def appendNumber(self, number):
print("Appending Number")
if self.currentNum == "first":
self.firstNumArray.append(number)
print("".join(str(x) for x in self.firstNumArray))
lbl.config(text="".join(str(x) for x in self.firstNumArray))
window.update()
else:
self.secondNumArray.append(number)
for i in range(1,4):
string = "Creating button at ({0},{1})".format(0,i)
print(string)
button = tkinter.Button(text=i, command=lambda: appendNumber(self, i))
button.grid(row=1, column=i-1)
for i in range(1,4):
string = "Creating button at ({0},{1})".format(1,i)
print(string)
button = tkinter.Button(text=i+3, command=lambda: appendNumber(self, i+3))
button.grid(row=2, column=i-1)
for i in range(1,4):
string = "Creating button at ({0},{1})".format(2,i)
print(string)
button = tkinter.Button(text=i+6, command=lambda: appendNumber(self, i+6))
button.grid(row=3, column=i-1)
div = tkinter.Button(text="/")
mult = tkinter.Button(text="*")
add = tkinter.Button(text="+")
sub = tkinter.Button(text="-")
add.grid(row=1, column=3)
sub.grid(row=2, column=3)
mult.grid(row=3, column=3)
div.grid(row=4, column=3)
button = tkinter.Button(text="0")
button.grid(row=4, column=1)
window.mainloop()
calc = Calculator()
나는 창이 열립니다 프로그램을 실행합니다. 단추를 클릭하면 레이블의 텍스트가 변경되지 않습니다. 나는 StringVar
을 textvariable
으로 사용하고 그 다음에 set()
함수를 호출하려고 시도했지만 그 중 하나는 작동하지 않았습니다. 나는 그것이 함수의 범위와 관련이 있다고 생각한다. 어떤 이유로 든 self.lbl = tkinter.Label()
이 팝업을 전혀 내지 않기 때문에 안에 appendNumber()
기능을 배치해야했습니다.
사용하지 않은'textvariable'과 label.try를 제거했다는 것을 알 수 있습니다. – Zety