管脚 2022-08-16 09:21 采纳率: 50%
浏览 268

pyhton tkinter库如何设置文本框中只能输入数字(int或者float)

pyhton tkinter库如何设置文本框中只能输入数字(int或者float)
我希望在一个窗口中的文本框只能输入数字,求解答

  • 写回答

3条回答 默认 最新

  • honestman_ 2022-08-16 10:56
    关注

    可以参考如下代码,效果为:如果输入非数字则清空输入框

    from tkinter import *
    
    master = Tk()
    
    master.title("输入数字校验")
    theLabel = Label(master, text="Please input minute")
    theLabel.pack()
    
    
    # 校验时间输入是否符合要求
    # StringVar()
    # 分钟、秒要求60以内的非负数
    def timeValidate():
        cont = e1.get()
        if len(cont) <= 2:  # 字符长度不超过2
            if cont.isdigit():  # 字符串是否只有数字
                print(int(cont))  # 数字字符串转数字'123'=123
                if int(cont) >= 0 and int(cont) < 60:  # 数字不大于60
                    return True
                else:
                    print("错误!")
                    e1.delete(0, END)  # 清除输入框
                    return False
            else:
                print("错误!")
                e1.delete(0, END)
                return False
        else:
            print("错误!")
            v2.set("error")  # 第二个文本框显示错误
            e1.delete(0, END)
            return False
    
    
    v1 = StringVar()
    v2 = StringVar()
    e1 = Entry(master, textvariable=v1, validate="focusout", validatecommand=timeValidate)
    e2 = Entry(master, textvariable=v2)
    
    e1.pack(padx=10, pady=10)
    e2.pack(padx=10, pady=10)
    
    mainloop()
    
    评论

报告相同问题?

问题事件

  • 创建了问题 8月16日

悬赏问题

  • ¥15 锌合金的耐温能到多少度。可以持续多长时间
  • ¥15 .net调用本地office组件出现问题
  • ¥15 docker镜像拉取失败请教教我
  • ¥15 https访问nginx上的http
  • ¥15 需要完整规则的五子棋博弈代码
  • ¥15 Hadoop的部署与安装的一些疑问
  • ¥15 短剧的sdk在哪里接入
  • ¥30 智能割草机自动化割草
  • ¥15 求:可不可以提供一些 在国内可以用,低代码不要太难 在电脑上可以下载的 制作app的软件
  • ¥15 fluke高精度万用表8845A型号测交流电压一直跳动,且去掉输入后显示不归零