Qt编程:使用动态创建技术实现Designer自定义控件插件脚本化管理

本文介绍了如何使用动态创建技术来脚本化管理Qt Designer的自定义控件插件,简化了以往繁琐的流程。通过解析特定的脚本文件结构,动态加载控件库,实现自定义控件在Designer中的灵活使用。
摘要由CSDN通过智能技术生成

每次使用Qt进行编写好自定义控件后,还需要编写Desginer设计器使用的插件。才能够提供给Designer设计器使用,过程比较繁琐,工作量也比较大,不够灵活。本文介绍怎样使用之前技术博文提及到的动态创建技术实现脚本化管理Designer自定义控件插件。
首先介绍下管理脚本文件结构
在这里插入图片描述
libs节点:自定义控件库集合;
directory属性:表示自定义控件库的存储路径;
lib节点:描述一个自定义控件库;
name节点:自定义控件库名称;
method节点:控件创建方法入口;
controls节点:控件集合;
control节点:描述一个控件;
name属性:控件名称;
container节点:是否为容器;
icon节点:Designer设计器中显示控件图标描述;
directory属性:图标存储路径;
name节点:图标名称;
doxml节点:控件默认ui的描述信息;

脚本解析类声明如下:

class DomControls;
class DomLibs;
class DomControl;
class DomLib;
class DomInclude;
class DomIcon;
class DomDomXml;
class DomName;
class DomContainer;

class DomCollections
{
   
public:
    DomCollections();
    ~DomCollections();
    void read(const QDomElement& node);
    void setElementLibs(DomLibs* libs);
    void setElementControls(DomControls* controls);
    DomControls *elementControls()const;
    DomLibs *elementLibs()const;
    void setAttributeVersion(const QString& version);
    QString attributeVersion()const;
    bool hasAttributeVersion()const;
    void clearAttributeVersion();
private:
    QString m_attr_version;
    bool    m_has_attr_version;
    DomControls* m_controls;
    DomLibs* m_libs;
};

class DomLibs{
   
public:
    DomLibs();
    ~DomLibs();
    void read(const QDomElement& node);
    void setElementLib(DomLib* lib);
    QList<DomLib *> elementLib()const;
    void setAttributeDirectory(const QString& dir);
    QString attributeDirectory()const;
    bool hasAttributeDirectory()const;
    void clearAtrributeDirectory();
private:
    QString m_attr_directory;
    bool m_has_attr_directory;
    QList<DomLib*> m_libs;
};

class DomControls{
   
public:
    DomControls();
    ~DomControls(
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值