0
Tkinter 대화 상자에서 간단한 날짜 뺄셈을 시도했지만 뭔가가 그것을 잡고 있습니다. 날짜 빼기는 쉘에서 실행될 때 멈추는 것처럼 보이지만, 나는 이것으로부터 아무것도 얻지 못합니다. Tk입니다.파이썬 Tkinter 입력 날짜 뺄셈
코드는 모든 양식 및 창 설정과 함께 성공적으로 실행되는 다른 스크립트에서 빌려 왔습니다.
#!/usr/bin/python
from Tkinter import *
import datetime
import math
fields = ('Enter Date (mm/dd/yy)', 'Days Since 10/30/14')
def Calc(entries):
d = raw_input(entries['Enter Date (mm/dd/yy)'].get())
nd = datetime.datetime.strptime(d, "%m/%d/%y").date()
d1 = "10/30/14"
od = datetime.datetime.strptime(d1, "%m/%d/%y").date()
diff = (nd - od).days
diff = ('%8.2f' % diff).strip()
entries['Days Since 10/30/14'].delete(0,END)
entries['Days Since 10/30/14'].insert(0, diff)
def makeform(root, fields):
root.title('Date Difference')
entries = {}
for field in fields:
row = Frame(root)
lab = Label(row, width=22, text=field+": ", anchor='w', font=('arial', 12))
ent = Entry(row, font=('arial', 12))
row.pack(side=TOP, fill=X, padx=5, pady=5)
lab.pack(side=LEFT, padx=10)
ent.pack(side=RIGHT, expand=YES, fill=X)
entries[field] = ent
return entries
if __name__ == '__main__':
root = Tk()
root.geometry("400x400+300+300")
ents = makeform(root, fields)
root.bind('<Return>', (lambda event, e=ents: Calc(e)))
b1 = Button(root, text='Calculate', font=('arial',12), command=(lambda e=ents: Calc(e)))
b1.pack(side=LEFT, padx=5, pady=5)
b2 = Button(root, text='Quit', font=('arial',12), command=root.quit)
b2.pack(side=LEFT, padx=5, pady=5)
root.mainloop()
어떤 도움을 주시면 감사하겠습니다
...
심지어 지금은 어떻게 든 아예 시작하고이 분을 실행중인 makeform(root,fields):
에서 "실험실"변수를 강조하지 않는, 그것을 더 엉망 전에는 계산을하지 않겠지 만 ...
도움말?
감사! 네, 우선, 제 버전의 "lab"변수 앞에있는 줄 끝 부분에 ")"이 빠졌습니다. 그래서 그것이 모두 작동을 멈추었습니다. 하지만이를 대체하고 raw_input을 제거한 후에는 정상적으로 작동했습니다. 나는 숫자 항목을 위해 float을 사용했고 raw_input이 비 숫자 값을 가지는 방법처럼 보이기 때문에 필자가 필요하다고 생각했다. 다시 한 번 감사드립니다. 이제이 기능에 더 많은 기능을 추가하려고합니다 ... – rickman90