Я пытаюсь получить мое диалоговое окно Tkinter для простого вычитания даты, но что-то держит его. Вычитание даты, похоже, задерживается при запуске из оболочки, но я ничего не получаю от этого, это Tk.Python 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