Ввод данных для QTableView с QSqlTableModel

У меня есть базовый QTableView, отображающий данные из таблицы SQLite с QSqlTableModel.

Ввод данных осуществляется родительским диалогом, имеющим ряд виджетов, представляющих данные поля, и кнопку «Добавить». Удаление данных осуществляется с помощью кнопки «Удалить выбранные строки».

Все очень функционально, но я нахожу это невероятно неуклюжим и хочу попробовать лучший способ.

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

Я думаю, что этого можно достичь с помощью подкласса QTableView, но идея перекрашивать все немного пугает ...

Есть ли у кого-нибудь совет, как я могу это сделать, возможно, используя делегатов (по общему признанию, то, что я раньше не использовал) или другой более простой метод, который я упустил?


person Tim Jones    schedule 15.11.2012    source источник


Ответы (1)


Судя по тому, что вы описываете, вам не нужно беспокоиться о перекраске. Просто вы можете добавить QButton в последнюю ячейку строки. Есть несколько ответов / статей по добавлению кнопки в QTableView:

  1. http://qtadventures.wordpress.com/2012/02/04/adding-button-to-qviewtable/
  2. Добавление кнопки в QTableview

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

  1. http://doc.qt.io/archives/qt-4.7/model-view-programming.html#making-the-model-editable
person Matthew    schedule 15.11.2012