通过代码添加可编辑属性的小部件
问题描述:
我创建了一个自定义小部件插件,它是一个容器(它重载了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));
注册插件(一个绘图员,我的情况)与设计师。
希望这会有所帮助:)