Проверка введенных данных QTableWidget

265
10 ноября 2017, 09:35

Доброго времени суток коллеги. Есть задача используя QTableWidget проверять введенные пользователем данные в ячейки с помощью нехитрой конструкции.

connect(ui->tableWidget,SIGNAL(cellChanged(int,int)),this,SLOT(test_slot1(int,int)));

Где слот test_slot1 получает позицию ячейки с которой в данный момент работает пользователь. Проблема в том что данная конструкция работает только после завершения редактирования строки.

Есть аналог в классе QLineEdit, который имеет сигнал textChanged, это именно то что мне нужно, НО аналога для QTableWidget я не нашел.

Возможно необходимо переопределить сигнал другого класса или использовать QEvent дайте пинок в нужном направлении.

Answer 1

В зависимости от типа редактируемых данных создаваемый редактор может быть очень разным, в том числе, не быть QLineEdit. Поэтому трудно ожидать нужного вам сигнала в классе таблицы, иначе пришлось бы создать аналоги сигналов для всех возможных редакторов.

Вероятно, то тебе нужно:

  1. Создать собственную реализацию QItemDelegate. (унаследоваться от этого класса)
  2. Перекрыть метод creteEditor. Можно сперва вызвать QItemDelegate::createEditor, и если был создан QLineEdit, то подключиться к его сигналам.
  3. установить свой делегат с помощью метода setItemDelegate
READ ALSO
Ошибки в библиотеке GLM (C++ Builder)

Ошибки в библиотеке GLM (C++ Builder)

При подключении библиотеки GLM возникают ошибки:

291
Отправить сообщениие

Отправить сообщениие

Имеется следующая функцияНадо чтобы вывелось сообщение на другой странице когда осуществится переход window

307
Как добавить данные во все ajax запросы?

Как добавить данные во все ajax запросы?

Здравствуйте, как можно добавить данные (cscrf token) ко всем ajax запросам?

324
Не применяются стили для WP

Не применяются стили для WP

Через редактор были изменены стилиПосле сохранения, редактированный css файлик сохранился в измененном виде, т

333