@pypyshka

Как правильно в QTableView вносить и сохранять изменения?

Добрый день. Изучаю Python 3.5.1 и PyQt 5.6.
Увидел пример использования делегата для изменения значений в таблице. Но в нем использовался класс QtStandartItemModel. В моем же примере есть окно с таблицей TableView. В эту таблицу подгружаются данные из БД:

Наименование | Цена | Кол-во
Огурцы | 200 руб. | 0
Помидоры | 150 руб. | 0

model = QtSql.QSqlQueryModel(parent = None)
        model.setQuery("SELECT name, price, count FROM table")
        window.tableView.setModel(model)


Но в этой таблице нельзя изменить значение ячейки (например, двойным кликом по ней). В Qt Designer я не нашел свойства для TableView, которое бы разрешало редактировать значения. Можно ли как-то всё-таки разрешить редактировать ячейки, например, только для третьего столбца? Обязательно ли использовать для этого делегаты, или может есть какой-нибудь очень простой способ изменить значение ячейки и сохранить его в БД?
  • Вопрос задан
  • 2482 просмотра
Решения вопроса 1
@pypyshka Автор вопроса
Попробовал включить AllEditTriggers в QtDesigner для TableView, но ячейки все равно остались нередактируемыми.
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
kkmspb
@kkmspb
хобби C++, Qt, десктоп, микроконтроллеры STM32
Возможность редактирования ячейки в QTableView на самом деле правильнее делать в ее модели данных, смотрите метод ::flags.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы