Как пометить недействительную запись с CellRendererText
Я пишу приложение с таблицами, полными редактируемых пользователем данных. Некоторые из столбцов таблицы содержат числа. Я хочу, чтобы пользователь мог вводить новый номер в поле в таблице, но если пользователь вводит "foo" или "1.2.3", мне нужно иметь возможность сообщить пользователю, что это не было принято,
При использовании обычного виджета Entry я могу установить состояние Invalid, если пользователь вводит что-то, что не является числом. Однако для таблиц я использую TreeView с TreeViewColumns. Пользователь редактирует текст, отображаемый с помощью CellRendererText. Я знаю, что могу получить фактический виджет для ввода текста, когда пользователь вводит текст, но насколько я могу судить, когда пользователь нажимает "Enter", этот виджет исчезает до того, как CellRendererText отправит сигнал TextEdited.
Как правильно сигнализировать пользователю, что он набрал неправильную информацию в этих обстоятельствах? Я хотел бы сделать что-то вроде выделения обидного поля красным.
1 ответ
Вы можете подключиться к редактированию, запущенному, чтобы получить объект TextEntry, а затем подключиться к changed
сигнал, чтобы посмотреть, что пользователь печатает. После этого вы можете намекнуть на проблему с текстом.