工作tkinter gui应用程序中的ValueErrors

时间:2015-08-04 07:26:55

标签: python tkinter traceback

我已经将我的第一个gui应用程序带到了可以开始使用它的功能点。一切正常,除了我得到回溯当我在条目中输入数据时,ValueErrors无法将字符串转换为浮点数。我也有其他错误,我不明白。任何有关如何使此应用程序错误免费的见解将不胜感激。

以下是在输入一些数字并更改组合框

后的控制台副本
void printlist(ListNode*& head)  

Exception in Tkinter callback
Traceback (most recent call last):
  File "C:\Python27\lib\lib-tk\Tkinter.py", line 1532, in __call__
    return self.func(*args)
  File "C:\Users\timewarnerIP-server\Desktop\Hillside_production_Calculator.py",
 line 370, in <lambda>
    self.cycletimes[num].trace('w', lambda x,y,z: proj(num))
  File "C:\Users\timewarnerIP-server\Desktop\Hillside_production_Calculator.py",
 line 346, in proj
    case = float(self.current_case_vars[tab].get())
ValueError: could not convert string to float:
Exception in Tkinter callback
Traceback (most recent call last):
  File "C:\Python27\lib\lib-tk\Tkinter.py", line 1532, in __call__
    return self.func(*args)
  File "C:\Users\timewarnerIP-server\Desktop\Hillside_production_Calculator.py",
 line 377, in <lambda>
    self.moldvars[num].trace("w", lambda x, y, z: cyclecnt(num))
  File "C:\Users\timewarnerIP-server\Desktop\Hillside_production_Calculator.py",
 line 301, in cyclecnt
    cyclecount = int(self.cycle_count_vars[tab].get())
ValueError: invalid literal for int() with base 10: ''

1 个答案:

答案 0 :(得分:1)

您的tracebak包含两个错误 在这种情况下

line 301, in cyclecnt
    cyclecount = int(self.cycle_count_vars[tab].get())
ValueError: invalid literal for int() with base 10: ''

您尝试将空字符串转换为整数。在这种情况下,您可以使用以下方法

s = self.cycle_count_vars[tab].get()
cyclecount = int(s) if s else 0

或更一般的方法

try:
    cyclecount = int(self.cycle_count_vars[tab].get())
except ValueError as e:
    cyclecount = 0 # or some other default value

此错误

line 346, in proj
    case = float(self.current_case_vars[tab].get())
ValueError: could not convert string to float:

表示该字符串变量self.current_case_vars[tab].get()不包含有效的浮点数据。也可以使用try/except块来处理这种情况。