Russian Qt Forum

Qt => Вопросы новичков => Тема начата: antonkw от Май 17, 2014, 14:05



Название: Добавление QTableView на layout
Отправлено: antonkw от Май 17, 2014, 14:05
В общем, суть лабы в создании динамической таблицы, которая заполняется некоторыми данными (у меня список студентов и их оценок). Для создания таблицы использовал небезызвестную библиотеку HierarchicalHeaderView.
 В отдельном проекте таблица рисуется нормально, но вот добавить в мое приложение не получается никак.

Конструктор класса моей таблицы выглядит так:
studentsTable::studentsTable(QVector<student> stud_vector)
Код:
{
    //ExampleModel em(0,stud_vector[0].uniq_id.size(),stud_vector.size());
    ExampleModel em(0,7,8); //для тестирования поставил константы
    tv = new QTableView; // *tv объявлен в h-нике
    HierarchicalHeaderView* hv=new HierarchicalHeaderView(Qt::Horizontal, & *tv);
    hv->setHighlightSections(true);
    hv->setClickable(true);
    tv->setHorizontalHeader(hv);
    tv->setModel(&em);
    tv->resizeColumnsToContents();
    tv->resizeRowsToContents();
}
В отдельном проекте остается написать tv->show и моя таблица корректно отобразится.

 Так я создаю окно:
Код:
MainWindow::MainWindow(QWidget *parent) :
    QMainWindow(parent)

{
    QWidget *widget = new QWidget;
    setCentralWidget(widget);
    layout = new QVBoxLayout;  
    widget->setLayout(layout);
    createActions();
    createMenus();
    createToolBars();
    addToolBar(fileBar);
    setMinimumSize(800, 480);
    resize(1024, 800);
}

Пытаюсь создать таблицу:

Код:
studentsTable table(all_students);       
layout->addWidget(table.tv);

В итоге получаю
(http://s38-temporary-files.radikal.ru/ca8dc2ff98b4479f89eef237e7b34bec/-88693455.png)

Что я делаю не так? ???


Название: Re: Добавление QTableView на layout
Отправлено: Bepec от Май 17, 2014, 14:35
1) у вас модель существует только в конструкторе. Дальше она уходит из области видимости и удаляется.


Название: Re: Добавление QTableView на layout
Отправлено: antonkw от Май 17, 2014, 14:50
1) у вас модель существует только в конструкторе. Дальше она уходит из области видимости и удаляется.
Большое спасибо, у меня уже руки опустились


Название: Re: Добавление QTableView на layout
Отправлено: Bepec от Май 17, 2014, 14:58
Обращайтесь, но всегда есть возможность что вас заклюют :D