AC
5 февраля 2020 г. 11:23
QTableView и добавление иконки в строку.
Доброго времени суток.
Есть форма на которой присутствует tableView - выводится список документов.
Хочу реализовать в tableView вывод иконки в зависимости от состояния документа (записан, проведен).
- model = new QSqlQueryModel;
- qry = new QSqlQuery(db->getDB());
- if (db->getDB().open()){
- qry->prepare("SELECT docExamen.id,"
- "docExamen.post,"
- "substr(docExamen.date, 9, 2) ||'.'|| substr(docExamen.date, 6, 2) ||'.'|| substr(docExamen.date, 0, 5) ||' '|| substr(docExamen.date, 11) as Date,"
- "docExamen.number,"
- "pacients.name ||' '|| pacients.fName ||' '|| pacients.mName||' '|| substr(pacients.birthday, 9, 2) ||'.'|| substr(pacients.birthday, 6, 2) ||'.'|| substr(pacients.birthday, 1, 4) as NamePacient,"
- "docExamen.ticket,"
- "users.name as Autor,"
- "docExamen.comment FROM docExamen "
- "INNER JOIN pacients ON docExamen.id_pacients = pacients.id "
- "INNER JOIN users ON docExamen.id_users = users.id;");
- if (qry->exec()){
- //****************************************
- /* ... реализовать добавление иконки ... */
- QList<QStandardItem *> items;
- while (qry->next()) {
- if (qry->value(1).toInt() == 1){ // doc->post
- items.append(new QStandardItem(QIcon(":rec/img/doc_post_x32.png"), qry->value(1).toString()));
- } else { // doc->write
- items.append(new QStandardItem(QIcon(":rec/img/doc_write_x32.png"), qry->value(1).toString()));
- }
- }
- /* ... реализовать добавление иконки ... */
- //****************************************
- model->setQuery(*qry);
- ui->tableView->setModel(model);
- } else {
- qDebug() << "Solicitarea nereusita !!!" << endl << "Eroarea: " + qry->lastError().text();
- }
- }
- //decorarea tabelului
- ui->tableView->hideColumn(0);
- ui->tableView->horizontalHeader()->setSectionResizeMode(QHeaderView::ResizeToContents);
- ui->tableView->horizontalHeader()->setStretchLastSection(true);
- ui->tableView->setSelectionBehavior(QAbstractItemView::SelectRows);
Вопросы:
1.Как правильно реализовать вывод иконки.
2.Заглядывая на будущее сортировка по столбцам (насколько я понимаю использовать QSortFilterProxyModel, но как из QSqlQueryModel в QSortFilterProxyModel)
3
253
Вам это нравится? Поделитесь в социальных сетях!
Комментарии
Только авторизованные пользователи могут публиковать комментарии.
Пожалуйста, авторизуйтесь или зарегистрируйтесь
Пожалуйста, авторизуйтесь или зарегистрируйтесь
- Последние комментарии
- AK1 апреля 2025 г. 11:41Добрый день. В данный момент работаю над проектом, где необходимо выводить звук из программы в определенное аудиоустройство (колонки, наушники, виртуальный кабель и т.д). Пишу на Qt5.12.12 поско…
- VP9 марта 2025 г. 16:14Здравствуйте! Я устанавливал Qt6 из исходников а также Qt Creator по отдельности. Все компоненты, связанные с разработкой для Android, установлены. Кроме одного... Когда пытаюсь скомпилиров…
- ИМ22 ноября 2024 г. 21:51Добрый вечер Евгений! Я сделал себе авторизацию аналогичную вашей, все работает, кроме возврата к предидущей странице. Редеректит всегда на главную, хотя в логах сервера вижу запросы на правильн…
- Сейчас обсуждают на форуме
- МА1 апреля 2025 г. 16:210ff763fe-4e50-455d-a3a6-5699c243b1a5_17_44_22_1.xml
- f15 февраля 2025 г. 13:46Подскажите, пожалуйста! Как данный класс можно дополнить, чтобы созданные объекты можно было перемещать мышкой по сцене?
- Не запускается компьютер (точнее работает блок , но сам монитор вообще жесть)В общем я ничего с интернета не скачивала в последнее время. На компе никаких левых пр…
- Вопрос решен. Узнать QModelIndex элемента на который мы перетаскиваем другой элемент, можно с помощью функции indexAt(event->position().toPoint()) представления QTreeViev вызываемой в переопр…
Добрый день, уважаемый Shuric.
Вот похожий пример для Вас Пример . Вам нужно использовать делегаты, я так понимаю.
Я бы помог Вам еще больше, но к сожалению сам только учусь этому.
Добрый день. Спасибо за наведение примера, но для меня не подходит.
Делегат необходим (насколько я понимаю) для редактирования в модели, а мне необходимо было переопределить методы представления модели QSqlQueryModel
Для кого интересно решил следующим образом:
- проблема в колонки post переопределить метод представления
basesqlquerymodel.h
basesqlquerymodel.cpp
В listdocexamen.cpp реализовал:
В результате вышло следующее:
Правда иконки не очень, но главное результат.
Сейчас, понимаю что изначально был задан вопрос не корректно. Приношу свои извинения.
Доброго времени суток.
По поводу второго вопроса - сортировка по столбцам.
Реализовал следующим образом:
listdocexamen.cpp
Возникла проблема с сортировкой по столбцу Date . Понял что проблема в запросе, изменил на
сортировка отрабатывается отлично,
но как привести значение yyyy-MM-dd HH-MM-ss в dd-MM-yyy hh-mm-ss ?
basesqlquerymodel.cpp