Доброго всем времени суток. Перейду сразу к проблеме. Необходимо создать mdi-приложение, которое работает с графическим представлением. Возникает проблема при попытке работы с активным окном, здесь:
Код | void MainWindow::slotTest() { qDebug()<<mdiArea->activeSubWindow(); GraphicsView* view = qobject_cast<GraphicsView*>(mdiArea->activeSubWindow()); if (view) qDebug()<<"успех"; }
|
в консоли видим следующее:
Код | QMdiSubWindow(0x15e3330)
|
Создание mdiArea и добавление subWindow:
Код | //создаем mdiArea void MainWindow::createMdiArea() { mdiArea = new MdiArea; mdiArea->setHorizontalScrollBarPolicy(Qt::ScrollBarAsNeeded); mdiArea->setVerticalScrollBarPolicy(Qt::ScrollBarAsNeeded); setCentralWidget(mdiArea); signalMapper = new QSignalMapper(this); connect(signalMapper,SIGNAL(mapped(QWidget*)),mdiArea,SLOT(setActiveSubWindow(QMdiSubWindow*)));
} //создаем subWindow GraphicsView* MainWindow::createNewGraphicsView() { graphicsViewWindow = new GraphicsView; mdiArea->addSubWindow(graphicsViewWindow); graphicsViewWindow->setAttribute(Qt::WA_DeleteOnClose); graphicsViewWindow->setWindowTitle("Unnamed window"); return graphicsViewWindow; }
|
Теперь нужно разобраться в каком месте я дурак. |