Python проверяет, не заполнено ли текстовое поле

#python #tkinter

#python #tkinter

Вопрос:

В настоящее время я использую Python tkinter для создания графического интерфейса, требующего от пользователя ввода сведений в текстовое поле (txt3)

Как мне проверить, введено ли текстовое поле. Если не введено, должно появиться сообщение «пожалуйста, введите текстовое поле». Если введено, оно пройдет через SaveInDB() для сохранения в базе данных.

 def SaveInDB():
    subID=(txt3.get())
    if not (subID is None):
        ...my code here to save to db
    else:
        res = "Please enter textbox"
        message.configure(text= res)`

txt3 = tk.Entry(window,width=20)
txt3.place(x=1100, y=200)

saveBtn = tk.Button(window, text="Save", command=SaveInDB ,width=20 )
saveBtn .place(x=900, y=300)
 

Этот приведенный выше код не работает для меня .. Пожалуйста, помогите

Комментарии:

1. Ваш код мне непонятен, но просто проверка того, является ли значение «txt3» None, не является хорошим методом, потому что вы не будете учитывать пробелы или неожиданные входные данные, если это важно.

2. @madogan какой метод вы предпочитаете для учета пробелов, потому что я хочу сделать текстовое поле обязательным для ввода

3. @madogan Я уже обновил свой код с помощью текстового поля и кнопки, пожалуйста, помогите проверить, что я должен сделать, чтобы проверить текстовое поле

4. Для этого вы можете использовать метод strip() как @Bitto-Bennichan

5. @madogan большое вам спасибо, я наконец-то получил это! 🙂

Ответ №1:

Вы можете проверить, имеет ли запись какое-либо значение, и если нет, использовать showinfo для отображения всплывающего сообщения. Если вам не нужно всплывающее окно, вы можете просто установить фокус entry.focus() или выделить фон другим цветом. Минимальный пример того, чего вы пытаетесь достичь.

 import tkinter as tk
from tkinter.messagebox import showinfo

def onclick():
    if entry.get().strip():
        print("Done")
    else:
        showinfo("Window", "Please enter data!")
        #or either of the two below
        #entry.configure(highlightbackground="red")
        #entry.focus()

root = tk.Tk()
entry = tk.Entry(root)
entry.pack()
tk.Button(root, text='Save', command=onclick).pack()
root.mainloop()
 

Всплывающая версия

введите описание изображения здесь

Версия фокуса

введите описание изображения здесь

Версия цвета фона

введите описание изображения здесь

Комментарии:

1. Большое вам спасибо за помощь, наконец-то все работает так, как я хотел 🙂