Qt 使用QAxWidget操作 ppt

很久以前实现的功能,现在突然要使用了,怕忘记记录一下

效果: 弹出一个ppt窗口进行幻灯片播放

1. pro :  增加  QT+=axcontainer

2. 

声明一个 

     QAxObject *ppt_dsoframer;
构造函数里面实例化 
ppt_dsoframer=new QAxObject(this);
ppt_state=ppt_dsoframer->setControl("Powerpoint.Application");
if(!ppt_state)//连接控件
       QMessageBox::critical(this, "Error", "没有安装office ppt!");

3.

  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()");

 

 

效果2:在widget嵌入一个ppt 进行播放

1.印象中可以使用QAxWidget 打开ppt  然后嵌入到widget来实现ppt的嵌入,但测试了很久还是没有实现这个功能,以后在补吧

2.使用QWindow 嵌入 第三方界面,根据资料,不确定是win10的原因还是Qt版本的原因,测试的 计算器界面一直不能嵌入到widget中,并且发现使用这个办法必须先打开第三方程序 才能获得对应句柄 然后在进行操作,有可能会有同一个程序在不同电脑上出现不同句柄的情况,所以也没有深入挣扎

3.使用.net 的 winform中嵌入Ppt、Word、Excel

实现效果:

显示效果:可对内进行增/删/改等 一些操作

Qt 使用QAxWidget操作 ppt_第1张图片

反映效果: 在窗口内显示  

Qt 使用QAxWidget操作 ppt_第2张图片

 

具体步骤:

环境:win10 64位  vs2017

1、下载DsoFramer_KB311765_x86.exe   具体安装包在对应链接里面,也可以自己去下,很早以前的控件,官方已经停止维护了

2、安装,默认路径安装C:\DsoFramer。

3、注册:开始菜单——》运行

  输入:regsvr32 C:\DsoFramer\dsoframer.ocx

4、附加组件,选择“COM组件”,浏览刚刚安装路径的dsoframer.ocx。

5、工具栏中多出了DSO Framer Control Object 控件,把它拖到界窗体上。

 

代码也很简单:

            OpenFileDialog op = new OpenFileDialog();
            op.ShowDialog();
            string strFileName = op.FileName;
            //If the user does not cancel, open the document.
            if (strFileName.Length != 0)
            {
                   this.axFramerControl1.Open(strFileName);
            }

 

文件链接:https://download.csdn.net/download/qq_33190913/12348330

你可能感兴趣的:(Qt)