Qt ActiveX web dome 详细例子

时间:2022-01-05 07:13:11

http://doc.qt.io/qt-5.9/activeqt-server.html

hierarchy 例子

#ifndef OBJECTS_H
#define OBJECTS_H #include <QWidget> QT_BEGIN_NAMESPACE
class QVBoxLayout;
QT_END_NAMESPACE
class QSubWidget; //! [0]
class QParentWidget : public QWidget
{
Q_OBJECT
Q_CLASSINFO("ClassID", "{d574a747-8016-46db-a07c-b2b4854ee75c}");// html 网页接口,即类接口
Q_CLASSINFO("InterfaceID", "{4a30719d-d9c2-4659-9d16-67378209f822}");
Q_CLASSINFO("EventsID", "{4a30719d-d9c2-4659-9d16-67378209f823}");
public:
QParentWidget(QWidget *parent = 0); QSize sizeHint() const; public slots:
void createSubWidget( const QString &name );//导出的方法 QSubWidget *subWidget( const QString &name );//导出的方法 private:
QVBoxLayout *vbox;
};
//! [0] //! [1]
class QSubWidget : public QWidget
{
Q_OBJECT
Q_PROPERTY( QString label READ label WRITE setLabel )//导出的属性 Q_CLASSINFO("ClassID", "{850652f4-8f71-4f69-b745-bce241ccdc30}");//类接口
Q_CLASSINFO("InterfaceID", "{2d76cc2f-3488-417a-83d6-debff88b3c3f}");
Q_CLASSINFO("ToSuperClass", "QSubWidget"); public:
QSubWidget(QWidget *parent = 0, const QString &name = QString()); void setLabel( const QString &text );
QString label() const; QSize sizeHint() const; protected:
void paintEvent( QPaintEvent *e ); private:
QString lbl;
};
//! [1] #endif // OBJECTS_H //综上所述
导出属性 使用 Q_PROPERTY 宏
导出方法 使用 公共槽
导出事件 使用 信号