Название: QSqlRelationalTableModel и QTableView Отправлено: rarom от Май 12, 2010, 12:16 Из таблицы Mysql базы данных строится модель и потом выводится в QTableView. При этом ничего в базе данных редактировать не требуется. Требуется только отображать.
А вопрос такой: В одной колонке бд хранится значение типа bool (0 или 1) и мне требуется вместо 0 или 1 выводить в QTableView текстом фразу в колонку, заменяя эти 0 и 1 соотвественно в одном случае(0) одну, в другом случае(1) другую. В данный момент выводится или 0 или 1 Как это реализовать, подскажите пожалуйста, буду благодарен ? Название: Re: QSqlRelationalTableModel и QTableView Отправлено: crossly от Май 12, 2010, 12:22 если редактировать не нужно используй QSqlQueryModel.... решения 2.... 1.унаследоватся и переопределить метод data .... 2. Использовать делегат
Название: Re: QSqlRelationalTableModel и QTableView Отправлено: rarom от Май 12, 2010, 12:24 если редактировать не нужно используй QSqlQueryModel.... решения 2.... 1.унаследоватся и переопределить метод data .... 2. Использовать делегат Спасибо за ответ. А можно пример пожалуйста. Название: Re: QSqlRelationalTableModel и QTableView Отправлено: crossly от Май 12, 2010, 12:24 пример чего??
Название: Re: QSqlRelationalTableModel и QTableView Отправлено: rarom от Май 12, 2010, 19:27 Не знаком еще с делегатами... Гуглил\смотрел стандартные примеры..не совсем понял
Вот допустим пример делегата, который выравнивает по центру Код: class Delegate: public QStyledItemDelegate { Применил ( ui->booksView->setItemDelegateForColumn( 6, new Delegate() ); ) работает. Как я понимаю мне нужно class Delegate : public QItemDelegate { public: .... и переопределить метод setEditorData Название: Re: QSqlRelationalTableModel и QTableView Отправлено: crossly от Май 12, 2010, 19:51 нет... достаточно paint (вам же только для отображения).... смотрите i.data().toInt().... и в зависимости от значения рисуете нужный текст
Название: Re: QSqlRelationalTableModel и QTableView Отправлено: rarom от Май 12, 2010, 23:45 Спасибо. Разобрался.
Вот что получилось: Код: class place2text_delegate: public QItemDelegate { Код: ui->booksView->setItemDelegateForColumn( 6, new place2text_delegate() ); |