首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在QMdiArea中显示QWindow

如何在QMdiArea中显示QWindow
EN

Stack Overflow用户
提问于 2021-06-09 19:46:56
回答 1查看 45关注 0票数 0

我有一个继承了QWindow和QOpenGLFunctions_3_3_Core的OpenGLWindow类,它打开collada dae文件(在简单的项目中工作得很好)。

我还有一个继承自QWidgets的pdfViewer类。

我想在MdiArea类中显示此窗口:

代码语言:javascript
复制
void MainViewer::CreateSubWindow(QString &pathToFile)
{
    if (pathToFile.endsWith(".pdf"))
    {
        PdfViewer *newViewer=new PdfViewer(&pathToFile);
        m_LoadedFiles->insert(pathToFile,newViewer);//this qhash save inform of current opened docs, i need it
        m_MainMdiArea->addSubWindow(static_cast<PdfViewer*>(m_LoadedFiles->value(pathToFile)))->show();
    }
    if (pathToFile.endsWith(".dae"))
    {
        DaeViewer *newViewer=new DaeViewer(pathToFile);
        m_LoadedFiles->insert(pathToFile, newViewer);
        m_MainMdiArea->addSubWindow(m_LoadedFiles->value(pathToFile))->show();
        static_cast<DaeViewer*>(m_LoadedFiles->value(pathToFile))->OpenGLWindow::show();
        newViewer->setAnimating(true);
    }
    mdiSubWindowsCount++;
}

得到相同的结果:

我知道QWidget和QWindow的显示方法是不同的。

我想在myMdiArea中看到我的openGlWindow,但不知道如何调用show方法

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-06-09 20:00:39

解决方案:

代码语言:javascript
复制
DaeViewer *newViewer=new DaeViewer(pathToFile);
m_MainMdiArea->addSubWindow(QWidget::createWindowContainer(newViewer))->show();
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/67903526

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档