在tkColorChooser对话框中单击“取消”会导致错误

时间:2010-02-23 11:30:55

标签: python tkinter

我在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设计得像这样吗?还有其他更简洁的方法来应对这个问题吗?谢谢!

1 个答案:

答案 0 :(得分:0)

查看tkColorChooser.py的版本(Python 2.6.4,Win32),它应该支持用户按cancel(和其他预定义对话框一样):它确实应该返回当结果在布尔上下文中显示为False时无。

因此,发生了一些奇怪的事情。

编辑:正如我在评论中所指出的,它确实是一个已在2.6.2版本中修复的错误。