Добавить QGraphicsView в форме из другого класса

1 r_dmv [2013-12-17 21:59:00]

У меня есть класс MainWindow и другой класс. У другого класса есть метод createView, который создает новый QGraphicsView. Этот метод, который я вызываю из MainWindow, и также хочу, чтобы это представление отображалось в моей форме. Это выглядит как:

MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent), ui(new Ui::MainWindow)) {
       ...
       AnotherClass object(this);
       object.createView();
       ...
}
...
void AnotherClass::createView() {
       QGraphicsView *gv= new QGraphicsView(mainWindow); // mainWindow - pointer to MainWindow object
       gv->show();
}

Но это не работает так хорошо... на самом деле это вообще не работает. И да, я сохраняю указатель на объекте MainWindow в моем другом классе как mainWindow, который я беру из другого конструктора класса. Если использование

MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent), ui(new Ui::MainWindow)) {
       ...
       QGraphicsView *gv= new QGraphicsView(this); 
       gv->show();
       ...
}

Это будет хорошо работать, но это решение меня не удовлетворяет.

c++ qt qmainwindow qgraphicsview


1 ответ


0 Решение r_dmv [2013-12-18 22:33:00]

Проблема заключалась в создании переменной в стеке.