1. pro :  增加  QT+=axcontainer

2.打开ppt

   QAxObject *ppt_dsoframer;ppt_dsoframer=new QAxObject(this);bool ppt_state=ppt_dsoframer->setControl("Powerpoint.Application");if(!ppt_state)//连接控件QMessageBox::critical(this, "Error", "no office ppt!");QString filePath = QFileDialog::getOpenFileName(0, "Open ppt", QString(), "*.pptx *ppt;; ");if (filePath.isEmpty())return;ppt_dsoframer->dynamicCall("SetVisible(bool)",true); //设置窗口显示ppt_dsoframer->querySubObject("Presentations()")->dynamicCall("Open(string)",filePath); //选择打开ppt的路径//放映这个剪辑ppt_dsoframer->querySubObject("ActivePresentation")->querySubObject("SlideShowSettings")->dynamicCall("Run()");

3.嵌入QWidget

     //嵌入QWidgetint index = filePath.lastIndexOf("/");QString filename =filePath.mid(index+1,filePath.length());QList<HWND> hwndList = GetWindowHandleListByPID(filename);//根据PPT名字获取进程ID号QWindow *pWin = QWindow::fromWinId((WId)hwndList.at(0));pWin->setGeometry(0,0,this->width(),this->height());QWidget *widget = QWidget::createWindowContainer(pWin);widget->setMouseTracking(true);//鼠标跟踪widget->setParent(this);
QList<HWND> Widget::GetWindowHandleListByPID(QString filename)//通过进程标题获取窗口进程ID
{QString str_title = filename+" - WPS Office";//进程标题固定格式QList<HWND> HWND_list;HWND h = ::GetTopWindow(0);while (h){DWORD pid = 0;DWORD dwTheardId = GetWindowThreadProcessId(h, &pid);if (dwTheardId != 0){TCHAR *name=new TCHAR[MAX_PATH];//::GetClassName(h, name, 255);::GetWindowTextW(h, name, 255);QString title = QString :: fromStdWString(name);qDebug()<<title;//pp.ppt - WPS Office"  "WPS演示 幻灯片放映 - [pp.ppt]if(title == str_title){HWND_list.append(h);}}h = ::GetNextWindow(h, GW_HWNDNEXT);}return HWND_list;//最终只会返回一个进程ID
}

4.

#include <windows.h>
#include <QAxObject>
#include <QMessageBox>
#include <QFileDialog>
#include <QDebug>
#include <QWindow>

5.运行结果-成功嵌入,并可以正常操作ppt

Qt qwidget嵌入ppt相关推荐

  1. Linux下Qt窗口半透明,Qt实现嵌入桌面的半透明窗口 good

    一.将Qt窗口嵌入到桌面中. 声明一个最简单的类: class Dialog : public QDialog {         Q_OBJECT public:         Dialog(QW ...

  2. Qt中嵌入web网页的几种实现方式

    1.背景 Web网页的界面交互相比较Qt客户端而言有着比较大的优势:更加的多样化和更高的使用便捷性使得我们即使在客户端中也可以考虑将web网页嵌入到客户端的界面当中.如此便能将web的优势和客户端进行 ...

  3. qt cef嵌入web(二)

    在qt cef嵌入web文章中已经讲述了怎么把cef页面嵌入到qt程序中,但是这样并不完美,因为如果需要在多个窗口上创建cef浏览器部件的话,在 消息监听部分没有办法做区分多个浏览器事件,在这篇文章中 ...

  4. qt界面嵌入web_使用Qt WebAssembly而不是JavaScript创建Web用户界面

    qt界面嵌入web 当我第一次听说WebAssembly以及使用Qt创建Web用户界面的可能性时(就像在普通C ++中一样),我决定更深入地研究该技术. 我的开源项目Pythonic完全基于Pytho ...

  5. 如何把视频嵌入PPT合为一个文件

    如何把视频嵌入PPT合为一个文件 PowerPoint 2007为例简要说明怎样把视频或动画嵌入PPT文档: 1.首先需要嵌入的视频为.swf格式: 2.打开PowerPoint2007,点选左上角大 ...

  6. 如何把swf的动画嵌入到ppt中_flash(.swf)嵌入ppt中

    利用ppt的控件工具箱中的shockwave flash object控件,添加一个swf文件到ppt.然后右击这个swf文件编辑其属性时,把EmbedMovie一项的值改为True,就表示将其嵌入p ...

  7. c# Winform 程序嵌入PPT

    记录一下,嵌入ppt程序遇到的问题........................... 在网上找了很多资料,关于嵌入ppt浏览ppt的例子和方法,使用下来都是一大推问题.. 最后选择了打开ppt程序 ...

  8. r语言 html 变为ppt,如何将html格式动态图表网页嵌入ppt中

    如何将html格式动态图表网页嵌入ppt中 看了之前推送的REmap相关内容,结果导出的图表是html格式的动态图,不知道如何将此种格式的图表放在ppt中使用. 这确实很尴尬他呀,你不能直接拿着Rst ...

  9. 如何将html格式动态图表网页嵌入ppt中

    看了之前推送的REmap相关内容,结果导出的图表是html格式的动态图,不知道如何将此种格式的图表放在ppt中使用. 这确实很尴尬他呀,你不能直接拿着Rstudio跟客户演示呀(而且还不保证每一台PC ...

最新文章

  1. Verilog语言中如何将memory型变量转换为普通变量
  2. 【错误记录】Android Studio 向 GitHub 提交代码报错 ( Push failed: Failed with error: Could not read from remote )
  3. 使用 Jersey 和 Apache Tomcat 构建 RESTful Web 服务
  4. 在Java 8之前的项目中使用JUnit 5
  5. python主循环方法mainloop_python gobject.mainloop吞噬信号事件
  6. Golang 交叉编译
  7. LeetCode344. Reverse String
  8. 电话系统服务器,局域网电话系统的两种解决方案——是否需要I
  9. 深度剖析 C++ 对象池自动回收技术实现
  10. LOL_2D局域网小游戏(Qt)
  11. Clark变换及比例系数2/3推导过程
  12. 通信技术发展的自然辩证法
  13. better-scroll 在vue中使用on监听事件,事件无效问题解决
  14. 设置android应用闪屏图片_android 闪屏设计
  15. java 基础的数组 添加
  16. httclient出现的entity consumed
  17. Android Material Design动画 Curved motion | 曲线运动
  18. java 节气_java计算某个日期是什么节气(24节气)
  19. Chromium浏览器password unlock
  20. 基于javaweb+springboot的医院管理系统(java+Springboot+ssm+mysql+maven)

热门文章

  1. windows vs2022 c/c++连接操作postgresql数据库 - 增删改查
  2. 车易加加油优惠卡|油价上涨“45元/吨”,由跌变涨
  3. 别瞎惊叹常识而已--5个前向实操过程分析
  4. 用计算机发短信,怎样发短信的步骤_教你如何使用电脑发短信!
  5. 阿里电话面试总结(人生第一次面试!!)
  6. Java中文编程开发,让Java编写更加容易
  7. 2019-10-28 超大文本打开工具PilotEdit
  8. Mariadb互为主从(双主模式)配置
  9. 实时操作系统与分时操作系统的区别
  10. 工业智能网关BL110应用之八十: 实现西门子S7-400 PLC 接入华为云平台