如何检查 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()