Qt(发音为“ cute”,而不是“ cu-tee”)是一个跨平台框架,通常用作图形工具包,它不仅创建CLI应用程序中也非常有用。而且它也可以在三种主要的台式机操作系统以及移动操作系统(如Symbian,Nokia Belle,Meego Harmattan,MeeGo或BB10)以及嵌入式设备,Android(Necessitas)和iOS的端口上运行。现在我们为你提供了免费的试用版。赶快点击下载Qt最新试用版吧>>(文末免费领取更多资料教程)
COM应用程序示例显示了如何使用ActiveQt开发可通过COM自动化的Qt应用程序。不同的基于QObject的类作为与运行Qt应用程序的GUI通信的COM对象公开。这些COM对象的API的设计类似于标准COM应用程序的API。比如Microsoft Office。
class Application : public QObject
{
Q_OBJECT
Q_CLASSINFO("ClassID", "{b50a71db-c4a7-4551-8d14-49983566afee}")
Q_CLASSINFO("InterfaceID", "{4a427759-16ef-4ed8-be79-59ffe5789042}")
Q_CLASSINFO("RegisterObject", "yes")
Q_PROPERTY(DocumentList* documents READ documents)
Q_PROPERTY(QString id READ id)
Q_PROPERTY(bool visible READ isVisible WRITE setVisible)
public:
explicit Application(QObject *parent = nullptr);
DocumentList *documents() const;
QString id() const { return objectName(); }
void setVisible(bool on);
bool isVisible() const;
QTabWidget *window() const { return m_ui.data(); }
public slots:
void quit();
private:
QScopedPointer m_docs;
QScopedPointer m_ui;
};
第一类Application代表应用程序对象。它公开了只读属性documents、id去访问文档列表和标识符。读/写属性visible控制应用程序基于QTabWidget的用户界面是否应可见,并且插槽quit()终止该应用程序。
RegisterObject属性设置以确保该类的实例在COM的运行对象表(ROT)注册-这使得COM客户端连接到已经实例化的COM对象。
class DocumentList : public QObject
{
Q_OBJECT
Q_CLASSINFO("ClassID", "{