нажатие кнопки «отмена» в диалоговом окне tkColorChooser приводит к ошибке - PullRequest
1 голос
/ 23 февраля 2010

Я использую Python 2.6 под Linux (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 голосов
/ 26 февраля 2010

Глядя на имеющуюся у меня версию tkColorChooser.py (Python 2.6.4, Win32), она должна поддерживать нажатие пользователем cancel (как и в случае других предопределенных диалогов): оно действительно должно возвращать None при результаты возвращаются к False в логическом контексте.

Поэтому происходит нечто странное.

edit: как я заметил в комментариях, это действительно ошибка, исправленная в версии 2.6.2.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...