objectsafetyimpl.cpp
RC_FILE = qaxserver.rc
DEF_FILE = qaxserver.def
Файлы
Файл
Мы можем затем включить компонент Bouncer в страницу HTML, используя тег
classid="clsid:5e2461aa-a3e8-4f7a-8b04-307459a4c08c">
The ActiveX control is not available. Make sure you
have built and registered the component server.
Мы можем создать кнопку для вызова слотов:
Мы можем манипулировать виджетом при помощи языков JavaScript или VBScript точно так же, как и любым другим элементом управления ActiveX (см. расположенный на компакт-диске файл
Наш последний пример — приложение Address Book (адресная книга), применяющее сценарий. Это приложение может рассматриваться в качестве стандартного приложения Qt для Windows или внепроцессного сервера ActiveX. В последнем случае мы можем создавать сценарий работы приложения, используя, например, Visual Basic.
01 class AddressBook : public QMainWindow
02 {
03 Q_OBJECT
04 Q_PROPERTY(int count READ count)
05 Q_CLASSINFO("ClassID",
06 "{588141ef-110d-4beb-95ab-ee6a478b576d}")
07 Q_CLASSINFO("InterfaceID",
08 "{718780ec-b30c-4d88-83b3-79b3d9e78502}")
09 Q_CLASSINFO("ToSuperClass", "AddressBook")
10 public:
11 AddressBook(QWidget *parent = 0);
12 ~AddressBook();
13 int count() const;
14 public slots:
15 ABItem *createEntry(const QString &contact);
16 ABItem *findEntry(const QString &contact) const;
17 ABItem *entryAt(int index) const;
18 private slots:
19 void addEntry();
20 void editEntry();
21 void deleteEntry();
22 private:
23 void createActions();
24 void createMenus();
25 QTreeWidget *treeWidget;
26 QMenu *fileMenu;
27 QMenu *editMenu;
28 QAction *exitAction;
29 QAction *addEntryAction;
30 QAction *editEntryAction;
31 QAction *deleteEntryAction;
32 };
Виджет
В предыдущем примере мы определяли идентификаторы класса и интерфейса при экспорте класса
• можно создать подкласс
• можно использовать макросы