Поиск:

Ответ в темуСоздание новой темы Создание опроса
> QSqlQueryModel дополнительная колонка. 
:(
    Опции темы
dix75
Дата 21.8.2012, 15:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 462
Регистрация: 17.7.2007

Репутация: 1
Всего: 1



Добрый день!

Имеется следующий кусок кода.
Код

QTreeView* view = new QTreeView;
QSqlQueryModel* model = new QSqlQueryModel(this);
 model->setQuery("SELECT first, second FROM Set );
 model->setHeaderData(1, Qt::Horizontal, tr("First"));
 model->setHeaderData(2, Qt::Horizontal, tr("Second"));


Мне необходимо выводить в первой колонке QCheckBox который выглядит одинаково для всех ячеек и не зависит от Базы данных 
Как это сделать?
 Переопределение виртуальных методов из QSqlQueryModel позволит это сделать или все-таки необходимо переопределять QAbstractTableModel?

Это сообщение отредактировал(а) dix75 - 21.8.2012, 15:29


--------------------
save your mind
PM MAIL   Вверх
math64
Дата 22.8.2012, 07:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2505
Регистрация: 12.4.2007

Репутация: 23
Всего: 72



Определяешь делегата для этой колонки. Он будет выводит CheckBox. Только откуда он будет брать данные поставить галочку или нет ? (например, можно в таблице задать дополнительное поле, где хранить эту информацию, а QSqlQueryModel спрятать его)

Добавлено через 2 минуты
QSqlQueryModel - это модель для таблицы. Зачем нужно дерево?
PM   Вверх
dix75
Дата 22.8.2012, 13:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 462
Регистрация: 17.7.2007

Репутация: 1
Всего: 1



Цитата(math64 @  22.8.2012,  07:57 Найти цитируемый пост)
Только откуда он будет брать данные поставить галочку или нет ?

Всегда галочки будут не выбраны.

Добавлено @ 13:52
Цитата(math64 @  22.8.2012,  07:57 Найти цитируемый пост)
Определяешь делегата для этой колонки. 

Нет данных для этой колонки, они просто не нужны. С делегатом понятно, только для него нужны данные их нет.

Это сообщение отредактировал(а) dix75 - 22.8.2012, 13:56


--------------------
save your mind
PM MAIL   Вверх
dix75
Дата 22.8.2012, 14:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 462
Регистрация: 17.7.2007

Репутация: 1
Всего: 1



math64, 
Проще  сказать, что мне нужно выводить данные не с 0 колонки, а с 1. А 0 оставить нетронутой 


--------------------
save your mind
PM MAIL   Вверх
math64
Дата 22.8.2012, 14:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2505
Регистрация: 12.4.2007

Репутация: 23
Всего: 72



Добавить колонку проще всего так: 
Код

SELECT FALSE, first, second FROM Set

+ делегатом заменять вывод колонки на нужный.

посложнее - использовать прокси (придётся писать свой).

PM   Вверх
dix75
Дата 22.8.2012, 14:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 462
Регистрация: 17.7.2007

Репутация: 1
Всего: 1



Цитата(math64 @  22.8.2012,  14:25 Найти цитируемый пост)
SELECT FALSE, first, second FROM Set

Это похоже на хак. и после определенного времени явно забудиться.


--------------------
save your mind
PM MAIL   Вверх
borisbn
Дата 23.8.2012, 11:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 4875
Регистрация: 6.2.2010
Где: Ростов-на-Дону

Репутация: 48
Всего: 135



Цитата(dix75 @  22.8.2012,  14:34 Найти цитируемый пост)
Это похоже на хак.

Почему это ? Вполне себе нормальная и часто используемая конструкция


--------------------
Женщины отличаются от программистов тем, что у них чары состоят из стрингов
PM MAIL Jabber   Вверх
dix75
Дата 24.8.2012, 22:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 462
Регистрация: 17.7.2007

Репутация: 1
Всего: 1



Цитата(borisbn @  23.8.2012,  11:26 Найти цитируемый пост)
Почему это ? Вполне себе нормальная и часто используемая конструкция

К тому же не рабочая


--------------------
save your mind
PM MAIL   Вверх
borisbn
Дата 25.8.2012, 09:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 4875
Регистрация: 6.2.2010
Где: Ростов-на-Дону

Репутация: 48
Всего: 135



Возможно, твоя СУБД не понимает FALSE. Знамени его на 0


--------------------
Женщины отличаются от программистов тем, что у них чары состоят из стрингов
PM MAIL Jabber   Вверх
math64
Дата 26.8.2012, 09:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2505
Регистрация: 12.4.2007

Репутация: 23
Всего: 72



Или NULL. Возможно нужно 'FALSE' - поскольку в колонке будет чекбокс, я и придложил булевский тип.
PM   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С/С++: Кроссплатформенное программирование, QT/Gtk+/wxWidgets"
JackYF
Любитель
  • В заголовке темы в квадратных скобках обозначьте используемую вами библиотеку, например: [QT],[GTK],[wx].
  • Если вопрос актуален только для некоторой версии библиотеки, либо, если вы пользуетесь не самой последней версией, укажите это. Например: [QT4], [GTK2].
  • Все начинающие изучать Qt - не забудьте зайти сюда.
  • Проставьте несколько ключевых слов темы, чтобы её можно было легче найти.
  • В вопросе укажите полную версию версию библиотеки, а также все дополнительные используемые программные пакеты.
  • Не забывайте пользоваться кнопкой "Код".
  • Телепатов на форуме нет! Задавайте чёткий, конкретный и полный вопрос. Указывайте полностью ошибки компилятора и компоновщика.
  • Новое сообщение должно иметь прямое отношение к тематике этого раздела. Флуд, флейм, оффтопик запрещены.
  • Категорически запрещается обсуждение вареза, "кряков", взлома программ и т.д.

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, JackYF, Любитель.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | С/С++: Кроссплатформенное программирование, Qt/Gtk+/wxWidgets | Следующая тема »


 




[ Время генерации скрипта: 0.0489 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.