我在linux下使用python 2.6(SUSE Linux Enterprise Desktop 11(x86_64))。我测试了一些非常简单的代码:
import tkColorChooser
tkColorChooser.askcolor()
然后如果我点击取消,我总会得到如下错误:
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/usr/lib64/python2.6/lib-tk/tkColorChooser.py", line 62, in askcolor
return Chooser(**options).show()
File "/usr/lib64/python2.6/lib-tk/tkCommonDialog.py", line 50, in show
s = self._fixresult(w, s)
File "/usr/lib64/python2.6/lib-tk/tkColorChooser.py", line 48, in _fixresult
r, g, b = widget.winfo_rgb(result)
File "/usr/lib64/python2.6/lib-tk/Tkinter.py", line 786, in winfo_rgb
self.tk.call('winfo', 'rgb', self._w, color))
_tkinter.TclError: unknown color name ""
我使用tkColorChooser有更复杂的代码,如果我在颜色选择器对话框中单击取消,则会出现相同的错误。我想我能抓住这个错误。但是tkColorChooser设计得像这样吗?还有其他更简洁的方法来应对这个问题吗?谢谢!
答案 0 :(得分:0)
查看tkColorChooser.py的版本(Python 2.6.4,Win32),它应该支持用户按cancel
(和其他预定义对话框一样):它确实应该返回当结果在布尔上下文中显示为False
时无。
因此,发生了一些奇怪的事情。
编辑:正如我在评论中所指出的,它确实是一个已在2.6.2版本中修复的错误。