최근에 엔트리 위젯의 유효성 검사 옵션이 매우 유용하다는 것을 발견했습니다 (this question 참조). 최근에 사용자가 16 진수 코드 또는 명명 된 색을 입력했는지 확인하는 유효성 검사 명령을 작성하려고했습니다. 필자는 이것을 작성했으며 16 진법 코드에서 잘 작동하며 산발적으로 색상에 적용됩니다. 다른 모든 것들과 마찬가지로 모든 키 누름에서 실행됩니다. (validate=ALL
)Tkinter 입력 유효성 검사 : 유효한 색상이나 색상의 부분을 확인하십시오.
def checkColorValid(P):
global backgroundColor
if not P:
return True
if P.lower() in colors:
backgroundColor = P
return True
if P[0] == '#':
try:
if len(P) == 1:
return True
int(P[1:], 16)
if len(P) < 8:
backgroundColor = P
return True
else:
return False
except ValueError:
return False
for color in colors:
if color.startswith(P.lower()):
return True
colors
는 모든 유효한라는 이름의 색상의 목록입니다.
이름이 지정된 색상을 입력하고 동일한 문자를 반복해서 입력하지 않는 한 유효성 검사 코드가 작동합니다. 일단 그런 일이 발생하면 유효성 검사가 작동을 멈추는 것처럼 보입니다. 프로그램을 다시 시작할 때까지 더 이상 실행되지 않습니다.
프로그램에서 수행중인 작업을 설명했지만 실제로 질문하지 않았습니다. 도움이 필요한 것은 무엇입니까? –