如何检查 Invar() 的空条目
How to check empty entry for Invar()
我想将值存储在 Intvar 变量中,当我单击提交时,如果 entry_var_get 值为空,则显示错误值是空的,请帮我解决这个问题
import tkinter as tk
from tkinter import messagebox as m_box
win = tk.Tk()
entry_var=tk.IntVar()
entry = tk.Entry(win , text='Enter the number', textvariable= entry_var)
entry.grid(row=0, column=0)
entry_var_get = entry_var.get()
def submit():
if entry_var_get==None:
m_box.showerror('error','empty value')
submit_btn = tk.Button(win , text='submit' , command=submit)
submit_btn.grid(row=1, column=0)
win.mainloop()
尝试在调用函数 submit
时获取值,而不是在第一次绘制屏幕时获取值,这对我有用。
此外,您将变量视为 int
,如果用户从框中删除该值并点击 submit
,这将中断。更安全的方法是使用 StringVar
并验证输入是否符合预期,然后将其转换为类型 int
。作为一般经验法则,所有用户输入都应进行验证,因为它被认为是危险的。
示例:
import tkinter as tk
from tkinter import messagebox as m_box
win = tk.Tk()
entry_var = tk.StringVar()
entry = tk.Entry(win, text='Enter the number', textvariable=entry_var)
entry.grid(row=0, column=0)
def submit():
entry_var_get = entry_var.get()
if entry_var_get.isdigit():
entry_var_get = int(entry_var_get)
if not entry_var_get or entry_var_get == 0:
m_box.showerror('error', 'empty value')
else:
m_box.showinfo('success', f'value entered: {entry_var_get}')
submit_btn = tk.Button(win, text='submit', command=submit)
submit_btn.grid(row=1, column=0)
win.mainloop()
我想将值存储在 Intvar 变量中,当我单击提交时,如果 entry_var_get 值为空,则显示错误值是空的,请帮我解决这个问题
import tkinter as tk
from tkinter import messagebox as m_box
win = tk.Tk()
entry_var=tk.IntVar()
entry = tk.Entry(win , text='Enter the number', textvariable= entry_var)
entry.grid(row=0, column=0)
entry_var_get = entry_var.get()
def submit():
if entry_var_get==None:
m_box.showerror('error','empty value')
submit_btn = tk.Button(win , text='submit' , command=submit)
submit_btn.grid(row=1, column=0)
win.mainloop()
尝试在调用函数 submit
时获取值,而不是在第一次绘制屏幕时获取值,这对我有用。
此外,您将变量视为 int
,如果用户从框中删除该值并点击 submit
,这将中断。更安全的方法是使用 StringVar
并验证输入是否符合预期,然后将其转换为类型 int
。作为一般经验法则,所有用户输入都应进行验证,因为它被认为是危险的。
示例:
import tkinter as tk
from tkinter import messagebox as m_box
win = tk.Tk()
entry_var = tk.StringVar()
entry = tk.Entry(win, text='Enter the number', textvariable=entry_var)
entry.grid(row=0, column=0)
def submit():
entry_var_get = entry_var.get()
if entry_var_get.isdigit():
entry_var_get = int(entry_var_get)
if not entry_var_get or entry_var_get == 0:
m_box.showerror('error', 'empty value')
else:
m_box.showinfo('success', f'value entered: {entry_var_get}')
submit_btn = tk.Button(win, text='submit', command=submit)
submit_btn.grid(row=1, column=0)
win.mainloop()