I am trying create small tkinter python program. It should accept only digit and underscore.
Example:
78_90_01 == Accept
89a_90_b == Through error
a90_ == Through error
_90a == Through error
_a == Through error
_a9 == Through error
89-0a == through error
If we erase and entered value and type above combination also should validate.
I tried the below program.it's not working as expetced.
import tkinter as tk
from tkinter import ttk
from tkinter import *
from tkinter.messagebox import showinfo
from tkinter import messagebox
from tkinter import filedialog
from tkinter.filedialog import askopenfile
import os
import re
import subprocess
from datetime import datetime
root = tk.Tk()
root.geometry("500x350")
root.resizable(False, False)
root.title('Test')
Generator = tk.Frame(root)
Generator.pack(padx=10, pady=10, fill='x', expand=True)
Version=tk.StringVar()
def VersionValidation(S):
#^[0-9]+_[0-9]+$
for letter in S:
if re.match("^[0-9]+_[0-9]+$",letter):
return True
else:
messagebox.showerror('Version','only letter and underscore allowed')
version_label = ttk.Label(Generator, text="Version",font=('Helvetica', 10, 'bold'))
version_label.pack(fill='x', expand=True)
vcmd = (Generator.register(VersionValidation), '%S')
version_entry = ttk.Entry(Generator, textvariable=Version,validate='key', validatecommand=vcmd)
version_entry.pack(fill='x', expand=True)
version_entry.focus()
Generator.mainloop()