Как правильно проверить мрачный EditableLabel в реальном времени (ошибка пиглета)?Python

Программы на Python
Ответить
Anonymous
 Как правильно проверить мрачный EditableLabel в реальном времени (ошибка пиглета)?

Сообщение Anonymous »

Я использую pyglet 1.5.31 (glooey не работает с более поздними версиями) и glooey 0.3.6. Я создаю подкласс EditableLabel и пытаюсь реализовать проверку, чтобы убедиться, что это число при каждом его редактировании:

Код: Выделить всё

import pyglet
import glooey
class Label(glooey.EditableLabel):
def __init__():
super().__init__(*args, **kwargs)
self.previous_text = ""
self.push_handlers(on_edit_text=self.prohibit_entry)
def prohibit_entry(self, label):
update_text = False
if label.text == "":
update_text = True
else:
if self.isFloat(label.text): #Function to try to parse string as float and return false if fails
update_text = True
if not update_text:
self.text = self.previous_text
else:
self.previous_text = label.text
Этот код завершается с ошибкой: исключение игнорируется при вызове функции обратного вызова ctypes: с последним вызовом обратной трассировки как

Код: Выделить всё

if _grapheme_break(text[invalid_start - 1], text[invalid_start]):
~~~~^^^^^^^^^^^^^^^
Я получил логику проверки для работы с другими обработчиками событий, например с on_unfocus, но не могу с on_edit_text. Кроме того, я подозреваю, что проблема связана с какой-то кареткой, потому что ошибка возникает только после ввода нечислового И другого символа. Если я наберу не число, клавишу Backspace, а ЗАТЕМ попытаюсь ввести другой символ, ошибка не появится. Однако я не знаком с пиглетом или мрачным, поэтому буду очень благодарен за помощь.

Подробнее здесь: https://stackoverflow.com/questions/798 ... pyglet-err
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Python»