• 3197阅读
  • 1回复

ActiveX 無法使用 [复制链接]

上一主题 下一主题
离线sanyungui
 

只看楼主 倒序阅读 楼主  发表于: 2014-06-18
用QT 5.3 VS2013 新建了一个Active 的工程 在IE上注册成功了,但是JS无法调用属性
  1. class ActiveXTest3 : public QWidget, public QAxBindable
  2. {
  3.         Q_OBJECT
  4.         Q_CLASSINFO("ClassID", "{4CFCDEDD-F2F6-42E9-8671-D63D7B15AA2C}");
  5.         Q_CLASSINFO("InterfaceID", "{615B202B-C4F2-4C9F-B9F5-2F9D52ECF0BC}");
  6.         Q_CLASSINFO("EventsID", "{C9C4EB5F-F926-4770-AA7F-50702B53DB3E}");
  7.         Q_PROPERTY(QColor fillColor READ fillColor WRITE setFillColor)
  8. public:
  9.         ActiveXTest3(QWidget *parent = 0);
  10.         QColor fillColor() const
  11.         {
  12.                 return fill_color;
  13.         }
  14.         void setFillColor(const QColor &fc)
  15.         {
  16.                 fill_color = fc;
  17.                 repaint();
  18.         }
  19. protected:
  20.         void paintEvent(QPaintEvent *e)
  21.         {
  22.         
  23.                 QPainter paint(this);
  24.                 QRect r = rect();
  25.                 r.adjust(10, 10, -10, -10);
  26.                 paint.fillRect(r, fill_color);
  27.         }
  28. private:
  29.         QColor fill_color;
  30. private:
  31.         Ui::ActiveXTest3Class ui;
  32. };

  1. <div class="so">hhh</div>
  2.         <object ID="Ax1" CLASSID="CLSID:4CFCDEDD-F2F6-42E9-8671-D63D7B15AA2C"></object>
  3.     
  4.         <script type="text/javascript">
  5.             alert(Ax1.fillColor());
  6.         </script>


离线ysu533

只看该作者 1楼 发表于: 2014-06-21
fillColor要被外部调用, 必需申明成 public slots:

另外activex控件写的是否符合你的需求, 可以先用oleview打开看看有哪些接口
快速回复
限100 字节
 
上一个 下一个