通过代码添加可编辑属性的小部件

问题描述:

我创建了一个自定义小部件插件,它是一个容器(它重载了qframe)。在这个容器中,我想通过代码添加孩子。我已经成功地做到了这一点。但是,这些孩子在设计师中是不可编辑或可点击的。我知道孩子可以通过设计师进行编辑,他们应该作为代码添加到XML中,但我不知道如何做到这一点。通过代码添加可编辑属性的小部件

有人会知道是否可以做到这一点?

的代码我有,人有arrowedFrame作为我的自定义的widget插件类:

arrowedFrame::arrowedFrame(QWidget *parent, Qt::WindowFlags f) : (parent, f) 
{ 
    QLabel* testLabel = new QLabel(this); 
} 

这增加了一个新的标签,为成员(对不起,我还不能发布图片,但是想象一下,一个盒子标签在里面)。但正如我所说,这个标签根本不是通过设计师编辑的。

我发现的解决方案是通过this指南。而在初始化函数加入一些东西:

void PlotContainerPlugin::initialize(QDesignerFormEditorInterface *formEditor) 
{ 
    if (initialized) 
     return; 

    QExtensionManager *manager = formEditor->extensionManager(); 

    myFormEditor = formEditor; 

    Q_ASSERT(manager != 0); 
    manager->registerExtensions(factory, Q_TYPEID(QDesignerContainerExtension)); 

    initialized = true; 
} 

第一部分刚刚得到一个经理:

QExtensionManager *manager = formEditor->extensionManager(); 

然后我们用这个经理,

manager->registerExtensions(factory, Q_TYPEID(QDesignerContainerExtension)); 

注册插件(一个绘图员,我的情况)与设计师。

希望这会有所帮助:)