Предел въезда в Ткинтер - PullRequest
1 голос
/ 15 апреля 2020

Я создал несколько простых функций для ограничения моей записи, но я немного застрял: во-первых, def lowercase_letter_entry не работает и не редактирует мою запись в нижнем регистре. Во-вторых, функции, которые работают, они делают это только один раз, после этого они как бы бесполезны. Я попытался решить эту проблему с помощью for и while true, но мне удалось заставить повторять бесконечное время предупреждающее сообщение. Также я знаю, что это довольно глупый вопрос, но сейчас я использую функцию, изменяющую my_entry в той переменной, которая мне нужна. Есть ли способ сделать def "нейтральным" и заставить их работать со всеми моими записями без необходимости редактировать имя? (надеюсь, мне удастся хоть немного разобраться.

import tkinter  
from tkinter import messagebox

def lowercase_letter_entry(P):
   if P.isalpha() or P == "":
     if P.islower():
        return True
     else:
      if not P.islower():
       P.get()lower()
       return True
   else:
    messagebox.showwarning("Warning","Only letters are allowed")
    return False

Спасибо и хорошего дня!

1 Ответ

1 голос
/ 16 апреля 2020

Функция проверки должна всегда возвращать True или False, иначе она сама отключится. У вас есть много случаев, когда он вернет None.

Есть ли способ сделать def "нейтральным" и заставить их работать со всеми моими записями без необходимости редактировать имя?

Они такие по умолчанию. Вы не должны вызывать my_entry.get() внутри функции. Ваш параметр P содержит строку, по которой вы должны проверять, нет необходимости явно извлекать ее.

...