Russian Qt Forum

Qt => Model-View (MV) => Тема начата: Jaxx от Апрель 07, 2016, 23:11



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

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

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

Ребята, помогите пожалуйста :'(


Название: Re: Помогите решить задание или направьте в нужном направлении QTreeView
Отправлено: __Heaven__ от Апрель 08, 2016, 09:20
http://www.prog.org.ru/topic_30003_0.html (http://www.prog.org.ru/topic_30003_0.html)


Название: Re: Помогите решить задание или направьте в нужном направлении QTreeView
Отправлено: Jaxx от Апрель 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.
Как с ней работать, как построить из этого древо?


Название: Re: Помогите решить задание или направьте в нужном направлении QTreeView
Отправлено: Dovgon от Апрель 09, 2016, 11:28
Почитай вот эту статью http://doc.crossplatform.ru/qt/4.7.x/model-view-programming.html в ней подробно описано про модель представление.


Название: Re: Помогите решить задание или направьте в нужном направлении QTreeView
Отправлено: __Heaven__ от Апрель 09, 2016, 14:50
А ещё, быть может, подойдёт QTreeWidget. С ним быстрее справиться. Но для большого количества данных и дальнейшего расширения он может оказаться неподходящим решением.