最近,我發現Entry widget的驗證選項非常有用(請參閱this question)。我最近嘗試編寫驗證命令來驗證用戶是否正在輸入十六進制代碼或已命名的顏色。我寫了這個,它對十六進制代碼很有用,它偶爾用於顏色。它運行在每個按鍵上,等等。 (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
是所有有效的命名顏色的列表。
驗證碼有效,除非您嘗試鍵入命名的顏色,並重復輸入相同的字符。一旦發生這種情況,驗證似乎只是停止工作。它不再運行,直到你重新啓動程序。
你描述了你的程序正在做什麼,但你實際上沒有提出一個問題。你需要什麼幫助? –