首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Tkinter条目验证:检查有效颜色或颜色的一部分

Tkinter条目验证:检查有效颜色或颜色的一部分
EN

Stack Overflow用户
提问于 2014-05-18 03:18:14
回答 2查看 786关注 0票数 0

最近,我发现条目小部件的验证选项非常有用(参见this question)。最近,我尝试编写一个验证命令,以验证用户正在键入十六进制代码或命名颜色。我写了这个,它对十六进制代码很有用,偶尔也可以用于颜色。它在每一个按键上运行,除其他外。(validate=ALL)

代码语言:javascript
运行
复制
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是所有有效命名颜色的列表。

验证代码可以工作,除非您试图键入指定的颜色,然后开始一次又一次地键入相同的字符。一旦发生这种情况,验证似乎就会停止工作。在重新启动程序之前,它将不再运行。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-05-18 05:59:42

验证代码有可能返回None而不是TrueFalse。也许添加最后返回语句会有帮助。

票数 2
EN

Stack Overflow用户

发布于 2022-08-02 02:35:28

同样的问题,在搜索中找到了这个页面。我不喜欢它,但想不出更好的办法。然后意识到我想得太多了。Python有一种很好的方法来测试任何东西是否有效,“试一试”。不一定是bg;只是任何物体是容易使用的,无论你测试的颜色。

代码语言:javascript
运行
复制
def ColorTest(SomeColor):
    IsGood = True
    ColorTest=Toplevel()
    try:
        ColorTest['bg'] = SomeColor # Set backround color
        #print(SomeColor+' is a valid color')
        ColorTest.destroy()
        return IsGood
        
    except:
        #print(SomeColor+' is an invalid color')
        IsGood = False
        ColorTest.destroy()
        return IsGood
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/23718229

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档