我创建了一个自定义小部件插件,它是一个容器(它重载了qframe)。在这个容器中,我想通过代码添加子代。我成功地做到了这一点。但是,孩子们在设计师中无法编辑或点击。我知道让孩子们可以通过设计师进行编辑,他们应该作为代码添加到XML中,但我不知道如何做到这一点。
有人会知道是否可以这样做?
我的代码,arrowedFrame作为我的自定义窗口小部件插件类:
arrowedFrame::arrowedFrame(QWidget *parent, Qt::WindowFlags f) : (parent, f)
{
QLabel* testLabel = new QLabel(this);
}
这会添加一个新的标签,作为会员(对不起,我还不能发布图片,但想象一个带有标签的盒子)。但正如我所说,这个标签根本不可以通过设计师编辑。
答案 0 :(得分:0)
我发现的解决方案是通过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));
向设计师注册插件(我的情况下的绘图仪)。
希望这会有所帮助:)