Название: как добавить колонку в QTreeView? Отправлено: moskk от Ноябрь 28, 2012, 18:08 всем привет.
задача такая: есть наследник QTreeView, который через наследника QSqlTableModel отображает таблицу из БД. в таблице есть три поля с флагами (значениями 1/0), которые отображаются в отдельных колонках. нужно сделать так, чтобы они отображались в одной отдельной колонке в виде трёх значков. на дерево установлен делегат для отрисовки клеток. есть вариант создать отдельную колонку в дереве, и в ней рисовать виджет, а те три колонки спрятать. во вью колонку не добавить, как я понимаю, добавлять надо в модель. в связи с этим вопрос: если добавить колонку в модель, не добавится ли она в базу? upd: подозреваю, что не добавится, но рисковать базой не хочется, она мне дорога как память :) Название: Re: как добавить колонку в QTreeView? Отправлено: Bepec от Ноябрь 28, 2012, 19:55 копируйте базу и пробуйте.
Название: Re: как добавить колонку в QTreeView? Отправлено: moskk от Ноябрь 29, 2012, 14:07 ну, напрмер, пишу в конструкторе модели:
Код может, я что не так делаю? в первый раз же... визуально ничего нигде не меняется, хотя insertColumn вернуло true. в доках написано: bool QAbstractItemModel::insertColumns ( int column, int count, const QModelIndex & parent = QModelIndex() ) [virtual] On models that support this, inserts count new columns into the model before the given column. а как бы узнать, поддерживает или нет? и если нет, то как быть? можно, конечно, добавить лишнюю колонку в базу, или рисовать на одной из тех трёх, но как-то это костыльно выглядит... upd: тут внезапно оказалось, что QSqlTableModel данные берёт в базе не из таблицы, а из вьюшки. собственно, в неё добавили одно поле вместо старых трёх - проблема снялась. но если кто знает, как такое сделать, не корёжа базу - расскажите, пожалуйста. Название: Re: как добавить колонку в QTreeView? Отправлено: kambala от Ноябрь 29, 2012, 15:11 а как бы узнать, поддерживает или нет? открыть исходники QSqlTableModel и посмотретьпопробуй вставить колонку после того, как вью отобразился Название: Re: как добавить колонку в QTreeView? Отправлено: Bepec от Ноябрь 29, 2012, 15:28 Если вам не нужно мгновенное отображение изменений (флаги не меняются мгновенно), мб вам тогда стоит написать мини модельку, которая будет запрашивать данные, их парсить и показывать? Вот тут правда уже другой вопрос по изменению встанет, но чисто изза моей неопытности.
|