У меня есть базовый QTableView, отображающий данные из таблицы SQLite с QSqlTableModel.
Ввод данных осуществляется родительским диалоговым окном, имеющим несколько виджетов, представляющих данные поля, и кнопку «Добавить».
Удаление данных осуществляется с помощью кнопки «Удалить выбранные строки».
Все очень функционально, но я нахожу это невероятно неуклюжим и хочу попробовать лучший путь.
В идеале я хотел бы, чтобы в представлении была пустая строка, в которую пользователь может просто начать вводить свои данные. В конце каждой строки кнопка, чтобы удалить эту конкретную строку (вроде как вертикальные заголовки, но с кнопкой вместо номеров строк).
Я думаю, что это может быть достигнуто с помощью подкласса QTableView, но идея перекрасить все немного устрашает …
Есть ли у кого-нибудь совет о том, как я могу поступить по этому поводу, может быть, с помощью делегатов (по общему признанию, то, что я раньше не использовал) или другой более простой метод, который я упустил?
Из того, что вы описываете, вам не нужно беспокоиться о перекраске чего-либо. Просто вы можете добавить QButton
в последней ячейке строки. Есть несколько ответов / статей о добавлении кнопки в QTableView
:
Во-вторых, с возможностью добавления пользователем строки непосредственно прочитайте разделы этой статьи о том, как сделать модель редактируемой и вставить / удалить строки.
Других решений пока нет …