天天看點

VS+QT開發Ocx/ActiveX控件

QT開發ActiveX控件

    • 一:所用IDE版本
    • 二:建立ActiveX
    • 三:qt desinger
    • 四:regsvr32.exe注冊DLL
    • 五:html
    • 六:windeployqt擷取dll多需的所有檔案
    • 七 HTML 調用ActiveX方法

一:所用IDE版本

IE11

vs2013+qt visual studio tools version 2.7.2

二:建立ActiveX

VS+QT開發Ocx/ActiveX控件

然後一直next,最後finish

三:qt desinger

VS+QT開發Ocx/ActiveX控件

放3個元件,這三個元件可以像普通的QT一樣進行操作,然後編譯成dll。

四:regsvr32.exe注冊DLL

  1. 管理者權限打開CMD
  2. 如果是64位的dll,使用C:\Windows\SysWOW64的regsvr32.exe,如果是32位的dll,使用c:\windows\system32的regsvr32.exe
  3. 執行

    regsvr32.exe ActiveQtServer_test1.dll

  4. 之後再需要生成dll就需要管理者權限打開vs

五:html

建立html,命名為ac.html

<HTML>
       <HEAD>
           <TITLE>My Web</TITLE> 
       </HEAD>
       <BODY>
		   <object ID="ActiveQtServer_test1" classid="CLSID:552ec57c-2d6a-4e8c-b08b-69044335d576" width="600" height="400">
		   </object>
       </BODY>
   </HTML>
           

TITLE:随意

ID:随意

classid:552ec57c-2d6a-4e8c-b08b-69044335d576

width/height:随意

VS+QT開發Ocx/ActiveX控件

NOTE: HTML放到dll同級目錄下

六:windeployqt擷取dll多需的所有檔案

使用QT自帶的windeployqt.exe擷取dll多需的所有檔案

VS+QT開發Ocx/ActiveX控件

IE打開ac.HTML檔案,效果如下:

VS+QT開發Ocx/ActiveX控件

七 HTML 調用ActiveX方法

  1. Qt類中的屬性和公有的插槽函數(slots)會被轉換為COM中的屬性和方法
  2. Qt類中的信号(signals)會被轉換成為COM元件中的事件

是以添加一個槽函數printffff,這個函數可以被HTML調用

public slots:
	QString printffff(QString s)
	{
		ss = s;
		ui.lineEdit->setText(ss);
		return ss;
	}
};
           

HTML:如下

<HTML>
       <HEAD>
           <TITLE>My Web</TITLE> 
       </HEAD>
       <BODY>
		   <object ID="ActiveQtServer_test1" classid="CLSID:552ec57c-2d6a-4e8c-b08b-69044335d576" width="600" height="400">
		   </object>
		<p>
		<button name="string" onclick="pushhhh()">push</button>
		</p>
		<script>
		function pushhhh(){
			ActiveQtServer_test1.printffff("123123");
		}
		</script>
       </BODY>
   </HTML>
           

IE打開HTML效果如下:

VS+QT開發Ocx/ActiveX控件

繼續閱讀