Я вызываю свою функцию mTime для получения значений из 4 Entryboxes, чтобы проверить время, если есть значение, которое мой код работает без проблем но если ящик ввода пуст, как «', я имею в виду, что пользователь удаляет значения по умолчанию во входных ящиках, которые являются« 0 ». и оставить его пустым. Я хочу присвоить значение «0», если это произойдетValueError: недействительный литерал для int() с базой 10: '' python 3.4 tkinter
но это не работает!
мой код
def mTime():
if (len(str(Days_T.get())) == 0):
dd = Days_T.set(0)
else:
dd = Days_T.get()
if (len(str(Hours_T.get())) == 0):
hh = Hours_T.set(0)
else:
hh = Hours_T.get()
if (len(str(Minutes_T.get())) == 0):
mm = Minutes_T.set(1)
else:
mm = Minutes_T.get()
if (len(str(Seconds_T.get())) == 0):
ss = Seconds_T.set(0)
else:
ss = Seconds_T.get()
d = dd
h = hh
m = mm
s = ss
print (dd,hh,mm,ss)
Days_T = IntVar()
Hours_T = IntVar()
Minutes_T = IntVar()
Seconds_T = IntVar()
TDays = Entry(mGui, textvariable = Days_T, width = 4, justify = CENTER).place(x=520,y=260)
THours = Entry(mGui, textvariable = Hours_T, width = 4, justify = CENTER).place(x=550,y=260)
TMinutes = Entry(mGui, textvariable = Minutes_T, width = 4, justify = CENTER).place(x=580,y=260)
TSeconds = Entry(mGui, textvariable = Seconds_T, width = 4, justify = CENTER).place(x=610,y=260)
mTime()
Я получаю эту ошибку
Exception in Tkinter callback
Traceback (most recent call last):
File "C:\Python34\lib\tkinter\__init__.py", line 1533, in __call__
return self.func(*args)
File "C:\Users\me\Desktop\Project\ManualTab.py", line 908, in mTime
if (len(str(Minutes_T.get())) == 0):
File "C:\Python34\lib\tkinter\__init__.py", line 358, in get
return getint(self._tk.globalgetvar(self._name))
ValueError: invalid literal for int() with base 10: ''
EDITED
НОВЫЙ КОД
ddays = StringVar()
ddays.set(Days_T.get())
hhours = StringVar()
hhours.set(Hours_T.get())
mminutes = StringVar()
mminutes.set(Minutes_T.get())
sseconds = StringVar()
sseconds.set(Seconds_T.get())
if (len(ddays) == 0):
dd = Days_T.set(2)
else:
dd = Days_T.get()
if (len(hhours) == 0):
hh = Hours_T.set(0)
else:
hh = Hours_T.get()
if (len(mminutes) == 0):
mm = Minutes_T.set(0)
else:
mm = Minutes_T.get()
if (len(sseconds) == 0):
ss = Seconds_T.set(0)
else:
ss = Seconds_T.get()
d = dd
h = hh
m = mm
s = ss
print (dd,hh,mm,ss)
Days_T = IntVar()
Hours_T = IntVar()
Minutes_T = IntVar()
Seconds_T = IntVar()
TDays = Entry(mGui, textvariable = Days_T, width = 4, justify = CENTER).place(x=520,y=260)
THours = Entry(mGui, textvariable = Hours_T, width = 4, justify = CENTER).place(x=550,y=260)
TMinutes = Entry(mGui, textvariable = Minutes_T, width = 4, justify = CENTER).place(x=580,y=260)
TSeconds = Entry(mGui, textvariable = Seconds_T, width = 4, justify = CENTER).place(x=610,y=260)
mTime()
НО НЕ РАБОТАЕТ
Вы устанавливаете 'textvariable' в' IntVar'. Используйте 'StringVar'. –
@MalikBrahimi действительно добавьте это как ответ. – kartikg3