у меня есть 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();
...
}
Это будет работать нормально, но это решение меня не устраивает.
Проблема была в создании переменной в стеке.
Других решений пока нет …