QT子窗口全屏winId改变问题

coolhuszu 2013-04-06 06:58:08
用QT做视频播放器,播放子窗口按照如下方式设置全屏成功,
setWindowFlags(Qt::Dialog);
showFullScreen();

当时winId()均改变,查了下帮助文档,原来采用上述方式全屏时winId均改变,导致视频无法显示,请教
论坛高人如何解决,谢谢!
...全文
430 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
DreamLife. 2015-10-22
  • 打赏
  • 举报
回复
现在我也遇到这个问题了,楼主最后怎么解决的啊
coolhuszu 2013-04-08
  • 打赏
  • 举报
回复
直接在主窗口渲染是OK的,因为没有涉及到native window与alien window的切换
jinjianxinxh 2013-04-08
  • 打赏
  • 举报
回复
之前我的做法是直接渲染在根窗口
coolhuszu 2013-04-07
  • 打赏
  • 举报
回复
网上查到的解决方法,思路挺好,但不实用 void MainWindow::toggleFullscreen() { if (this->isFullScreen()) { this->showNormal(); ui->preview->resize(_previewInitSize); ui->preview->move(_previewInitPoit); this->statusBar()->show(); } else { this->showFullScreen(); ui->preview->resize(this->size()); ui->preview->move(0, 0); this->statusBar()->hide(); } } 因为界面往往往采用了动态布局方式,导致采用这种方式时,全屏效果不正确; Qt设计为每次更换窗口Flag,均创建新的winId,为啥? 感觉不符合实际逻辑,窗口句柄被重新创建,也就类似新创建了一个窗口,怎能叫全屏? 是我理解有误,还是我接口使用有误,还是Qt真未提供一种解决该问题(应该很多应用会遇到这种场景:需要一个固定的出口句柄)的方法? 期待望高手解答
coolhuszu 2013-04-07
  • 打赏
  • 举报
回复
没人关注还是没人知道啊?

16,224

社区成员

发帖
与我相关
我的任务
社区描述
Qt 是一个跨平台应用程序框架。通过使用 Qt,您可以一次性开发应用程序和用户界面,然后将其部署到多个桌面和嵌入式操作系统,而无需重复编写源代码。
社区管理员
  • Qt
  • 亭台六七座
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧