2010-02-23 3 views
1

저는 Linux에서 Python 2.6을 사용합니다 (SUSE Linux Enterprise Desktop 11 (x86_64)). 나는 아주 간단한 코드 테스트 : 내가 클릭하면 내가 같은 오류를 제공 tkColorChooser를 사용하여 더 복잡한 코드가tkColorChooser 대화 상자에서 "취소"를 클릭하면 오류가 발생합니다.

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 "" 

: 다음

import tkColorChooser 
tkColorChooser.askcolor() 

을 나는에 취소를 클릭하면 오류처럼, 난 항상 얻을 색상 선택기 대화 상자에서 취소하십시오. 나는 그 오류를 잡을 수 있다고 생각한다. 하지만 tkColorChooser는 이와 같이 설계 되었습니까? 이 문제에 대처할 수있는 더 좋은 방법이 있습니까? 감사!

답변

0

나는 (파이썬 2.6.4, Win32) tkColorChooser.py의 버전을보고, 사용자가 cancel을 누르는 것을 지원해야한다. (다른 사전 정의 된 대화 상자와 마찬가지로). 실제로는 None을 반환해야한다. 부울 문맥에서 결과는 False으로 나타납니다.

따라서 이상한 일이 일어나고 있습니다.

편집 : 의견에 언급했듯이 실제로 버전 2.6.2에서 수정 된 버그입니다.

+0

취소를 클릭하면 tkColorChooser가 None을 반환한다고 설명되어 있습니다. – HongboZhu

+0

@Hongbo : Python 2.6.1 또는 그 이하 버전이있을 수 있습니다. 2.6.2에서 버그가 수정 된 것처럼 보입니다. (방금 소스를 들여다 보았습니다.) 업그레이드를 시도 했습니까? –

+0

@RaphaelISP : 파이썬 2.6.0이 있습니다. – HongboZhu

관련 문제