1

私の Tkinter アプリケーションには Entry ウィジェットがあり、ユーザーはそれに数字を入力する必要があります。

int入力値を、 、floatに制限することはできlongますか?

具体的には、ユーザーは数字のみを入力する必要があります。

  • これは、、、floatint場合がありlongます。
  • ユーザーは 1 つしか置くことができ.ません (数字には 2 つのドットはありません)。

import tkinter as tk

class App():
    def __init__(self):
        self.root = tk.Tk()
        vcmd = (self.root.register(self.on_validate), '%d', '%i', '%s', '%S')
        self.entry = tk.Entry(self.root, validate="key", validatecommand=vcmd)
        self.entry.pack()
        self.root.mainloop()

    def on_validate(self, d, i, s, S,):
        if S == "-" and s.count('-') != 1 and int(i) == 0:
            return True
        if d == "0":
            return True
        try:
            return int(S) >= 0 and int(S) <= 9
        except:
            if S == "." and s.count('.') != 1:
                return True
            return False

app = App()
4

1 に答える 1

1

データ型を制限することはできませんが、許可される文字を制限することはできます。質問への回答を参照してくださいPython/Tkinter: Interactively validationing Entry widget content

于 2012-08-09T02:09:22.900 に答える