【问题标题】:Embedding IE window inside a QFrame在 QFrame 中嵌入 IE 窗口
【发布时间】: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() 创建一个QwindowQWindow 传递给QWidget::createWindowContainer()

我的问题:

  1. 是否可以将 IE 窗口嵌入到 Qt 应用程序中?
  2. 关于我的第一个方法,我怎样才能使 QFrame 对象成为 QProcess 的父对象
  3. 第三种方法有效吗? (我仍然需要找到如何将 hWnd 转换为 WId)

【问题讨论】:

  • 我不认为QProcess 实现了任何嵌入。它从您的 Qt 应用程序运行一个单独的进程(应用程序)。你可以试试看QAxWidget
  • 应用程序(如 IE)能否作为 ActiveX 控件对象运行?
  • @user3079474 是的,这就是你想要做的,你应该为此使用 activeqt 模块。

标签: c++ qt internet-explorer qtgui qobject


【解决方案1】:

我的问题的答案

是的,可以将 IE 窗口嵌入到 Qt 应用程序中,(正如 @vahancho 所指出的)您将不得不使用 QAxWidgets。有关详细信息,请参阅示例/Activeqt 中的 Web 浏览器示例

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-08-22
    • 1970-01-01
    • 2014-03-21
    • 2011-03-18
    • 2013-10-24
    • 2023-04-01
    相关资源
    最近更新 更多