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

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

Страниц: [1]   Вниз
  Печать  
Автор Тема: Добавление QTableView на layout  (Прочитано 2244 раз)
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);

В итоге получаю


Что я делаю не так? Непонимающий
Записан
Bepec
Гость
« Ответ #1 : Май 17, 2014, 14:35 »

1) у вас модель существует только в конструкторе. Дальше она уходит из области видимости и удаляется.
Записан
antonkw
Гость
« Ответ #2 : Май 17, 2014, 14:50 »

1) у вас модель существует только в конструкторе. Дальше она уходит из области видимости и удаляется.
Большое спасибо, у меня уже руки опустились
Записан
Bepec
Гость
« Ответ #3 : Май 17, 2014, 14:58 »

Обращайтесь, но всегда есть возможность что вас заклюют Веселый
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


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