Как проверить пустую запись для Invar () - PullRequest
2 голосов
/ 12 февраля 2020

Я хочу сохранить значение в переменной Intvar, и когда я нажимаю на кнопку submit, если значение 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()

1 Ответ

1 голос
/ 12 февраля 2020

Попытайтесь получить значение, когда вызывается функция 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()
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...