QT, QTableWidget: изменение элементов с помощью cellChanged () - сигнал - PullRequest
2 голосов
/ 21 сентября 2011

Я использую QTableWidget.На cellChanged () - сигнал добавляю или обновляю строку в базе данных sqlite.После выполнения моих операторов SQL я хочу добавить кнопку / CellWidget к элементу в этой строке.Поскольку это изменение ячейки, оно, конечно, меняет содержимое элемента и создает цикл.

Как мне избежать этого цикла?

Ответы [ 2 ]

1 голос
/ 21 сентября 2011

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

1 голос
/ 21 сентября 2011

У вас есть другой подход в вашем распоряжении. Используя переменную мьютекса (например, логическое значение), которая контролирует, нужно ли вам добавлять / обновлять строку в вашей базе данных sql, вы можете игнорировать сигнал, испускаемый после выполнения операторов SQL. Переменная мьютекса может быть освобождена после добавления кнопки в строку.

Этот подход, вероятно, дешевле, чем отключение / подключение сигнала / слота вокруг вашего действия автоматического обновления. Если сигнал часто срабатывает, это может быть решением.

...