#include <QAxFactory> #include "clock.h" // class ActiveQtFactory : public QAxFactory { public: ActiveQtFactory( const QUuid &lib, const QUuid &app ) : QAxFactory( lib, app ) {} // QStringList featureList() const { QStringList list; // , // "Clock" list << "Clock"; return list; } // QObject *createObject(const QString &key) { if ( key == "Clock" ) return new Clock(); // return 0; } // - const QMetaObject *metaObject( const QString &key ) const { if ( key == "Clock" ) return &Clock::staticMetaObject; // return 0; } }; // QAXFACTORY_EXPORT( ActiveQtFactory, "{c1de5776-a143-4884-89fc-81a06d04e87d}", "{11403913-dc94-484a-af5a-521f0e93d2ee}" )
// ........... #include <qglobal.h> #if defined(Clock_LIBRARY) # define Clock_LIBRARY Q_DECL_EXPORT #else # define Clock_LIBRARY Q_DECL_IMPORT #endif class Clock_LIBRARY Clock : public QLCDNumber { // ...........
// .............. Q_OBJECT Q_CLASSINFO("ClassID", "{1edd41d0-e01f-445d-9b4e-78c99ab93acf}") Q_CLASSINFO("InterfaceID", "{8adccb5c-567e-42f6-8b81-f6634409fb1a}") Q_CLASSINFO("EventsID", "{f0a4474f-8c0c-4cdf-985d-8379b26bdd19}") // ..............
TEMPLATE = lib CONFIG += qt qaxserver dll contains(CONFIG, static):DEFINES += QT_NODLL SOURCES = main.cpp \ clock.cpp HEADERS += \ clock.h DEF_FILE = qaxserver.def DEFINES += clock_LIBRARY VERSION = 0.0.0.1 # INCLUDEPATH += clock TARGET = clock
// ................. Q_OBJECT Q_CLASSINFO("ClassID", "{1edd41d0-e01f-445d-9b4e-78c99ab93acf}") Q_CLASSINFO("InterfaceID", "{8adccb5c-567e-42f6-8b81-f6634409fb1a}") Q_CLASSINFO("EventsID", "{f0a4474f-8c0c-4cdf-985d-8379b26bdd19}") // name Q_PROPERTY(QString name READ getName WRITE setName) public: // QString getName()const { if(name.isEmpty()) return "Clock"; else return name; } // void setName(const QString &inName){name = inName;} private: QString name; // .......
// ....... public slots: void function(int a); QString functionb(const QString &b); // .......
// signals: void mouseDbClick(int x, int y); // protected: void mouseDoubleClickEvent(QMouseEvent *event) { QPoint pos = event->pos(); emit mouseDbClick(pos.rx(), pos.ry()); }
Source: https://habr.com/ru/post/170607/
All Articles