Я создал простой файл QListView
, добавленный QStringListModel
, который позволяет добавлять элементы и редактировать их текст. Но я не хочу, чтобы пустые поля добавлялись, и я частично достиг этого, используя сигнал dataChanged
от модели, которая испускается, если элемент списка теряет фокус без вставленного текста или пользователь нажимает клавишу Enter
без добавления текста.Событие для нажатия клавиши Esc для QListView
Однако, если вы нажмете клавишу Esc
, поле останется пустым и не будет выходить сигнал dataChanged
. Как я могу получить уведомление, если поле осталось пустым, не перегружая класс QListView
, который был бы утомительным (я использовал конструктор для создания формы)?
Есть ли другой сигнал, который испускается или метод, который я могу использовать для достижения этого?
Спасибо!
Вы уверены, что представление находится объект, который принимает ключевое событие? Когда пользователь редактирует элемент списка, есть виджет редактирования строки, который обрабатывает ввод пользователя, поэтому, вероятно, редактор также обрабатывает ключевые события? – vahancho
Ну, это может быть правдой, я никогда не использовал QListView. Но я не думаю, что есть другой способ сделать это, если это не сработает ... Однако использование пользовательских виджетов в Qt Designer просто, я добавлю его к моему ответу. – headsvk