Russian Qt Forum
Ноябрь 01, 2024, 06:39 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1]   Вниз
  Печать  
Автор Тема: Помогите решить задание или направьте в нужном направлении QTreeView  (Прочитано 5041 раз)
Jaxx
Гость
« : Апрель 07, 2016, 23:11 »

Доброго времени суток!
Есть задача отобразить иерархическим списком записи из БД в QTreeView.
Записи имеют вид:
||     ID     ||     parent id    ||     name     ||
||     1       ||                       ||    Обувь     ||
||     2       ||           1          ||    Туфли      ||
||     3       ||           1          ||    Калоши   ||
||     4       ||           2          ||    Красные  ||
||     5       ||           2          ||    Зелёные  ||
и т.д. и т.п.

Нужно построить:

-- Обувь
---- Туфли
-------- Красные
-------- Зелёные
---- Калоши

Ребята, помогите пожалуйста Плачущий
« Последнее редактирование: Апрель 08, 2016, 18:55 от Jaxx » Записан
__Heaven__
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 2130



Просмотр профиля
« Ответ #1 : Апрель 08, 2016, 09:20 »

http://www.prog.org.ru/topic_30003_0.html
Записан
Jaxx
Гость
« Ответ #2 : Апрель 08, 2016, 18:46 »

Вот пришёл к такому коду:

Код:
#include "mainwindow.h"
#include "ui_mainwindow.h"

#include "QMessageBox"

MainWindow::MainWindow(QWidget *parent) :
    QMainWindow(parent),
    ui(new Ui::MainWindow)
{
    ui->setupUi(this);

    db = QSqlDatabase::addDatabase("QSQLITE");
    db.setDatabaseName("../../task/task.sqlite3");
    if(!db.open())
        QMessageBox::critical(this, "Wirning DB", "DB not connected!");

    model = new QSqlTableModel(this);
    model->setTable("hierarhy");
    model->select();

    qDebug() << model->lastError().text();
    ui->treeView->setModel(model);
}

MainWindow::~MainWindow()
{
    db.close();
    delete ui;
}

Сейчас просто имею вывод таблицы из БД.
Но застопарился я на изменении model.
Как с ней работать, как построить из этого древо?
« Последнее редактирование: Апрель 08, 2016, 18:56 от Jaxx » Записан
Dovgon
Гость
« Ответ #3 : Апрель 09, 2016, 11:28 »

Почитай вот эту статью http://doc.crossplatform.ru/qt/4.7.x/model-view-programming.html в ней подробно описано про модель представление.
Записан
__Heaven__
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 2130



Просмотр профиля
« Ответ #4 : Апрель 09, 2016, 14:50 »

А ещё, быть может, подойдёт QTreeWidget. С ним быстрее справиться. Но для большого количества данных и дальнейшего расширения он может оказаться неподходящим решением.
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.265 секунд. Запросов: 22.