在 QFrame 中嵌入 IE 窗口
Posted
技术标签:
【中文标题】在 QFrame 中嵌入 IE 窗口【英文标题】:Embedding IE window inside a QFrame 【发布时间】:2014-07-01 11:41:35 【问题描述】:我正在尝试使用QProcess
将IE 窗口嵌入到QFrame
中以调用IE 应用程序。我正在使用 Qt 5.2.1 开发 Win7 32bit。
我尝试了以下方法
尝试将进程的父进程设置为框架,而不是通过这个设置MainWindow
QProcess *process = new QProcess(ui->frame_Video);
通过这个
QProcess *process = new QProcess(ui->frame_Video);
process->setParent(ui->frame_Video);
然后我尝试使用QWidget::createWindowContainer()
方法。这是我尝试遵循的工作流程:
获取IE窗口的WId(通过IE窗口的hWnd或其他方法)
使用QWindow::fromWinID()
创建一个Qwindow
将QWindow
传递给QWidget::createWindowContainer()
我的问题:
-
是否可以将 IE 窗口嵌入到 Qt 应用程序中?
关于我的第一个方法,我怎样才能使 QFrame 对象成为 QProcess 的父对象
第三种方法有效吗? (我仍然需要找到如何将 hWnd 转换为 WId)
【问题讨论】:
我不认为QProcess
实现了任何嵌入。它从您的 Qt 应用程序运行一个单独的进程(应用程序)。你可以试试看QAxWidget
。
应用程序(如 IE)能否作为 ActiveX 控件对象运行?
@user3079474 是的,这就是你想要做的,你应该为此使用 activeqt 模块。
【参考方案1】:
我的问题的答案
是的,可以将 IE 窗口嵌入到 Qt 应用程序中,(正如 @vahancho 所指出的)您将不得不使用 QAxWidgets。有关详细信息,请参阅示例/Activeqt 中的 Web 浏览器示例
【讨论】:
以上是关于在 QFrame 中嵌入 IE 窗口的主要内容,如果未能解决你的问题,请参考以下文章