Mil*_*fie 5 c++ qt qt-creator qt5
我试图创建一个自定义的widget插件(如描述在这里),它会提供一些控件的集合,与容器,其布局,我想接触到Qt Creator中的表格编辑器一起.
在我的widget的插件界面中,我修改了isContainer()函数以返回true.
bool MyWidgetPlugin::isContainer() const
{
return true;
}
Run Code Online (Sandbox Code Playgroud)
此自定义窗口小部件的UI文件的Object Inspector的类列看起来类似于:
- QWidget <- The Custom Widget
| - QPushButton
| - QWidget <- This is the widget who's layout I'd like to expose to the form editor.
Run Code Online (Sandbox Code Playgroud)
这允许我在表单编辑器中将新的小部件放到我的自定义小部件上,但不考虑布局.新添加的窗口小部件可能会被放在其他窗口小部件之上,包括自定义窗口小部件中内置的窗口小部件,我无法更改自定义窗口小部件的布局.
很明显,表单编辑器目前无法知道内部窗口小部件是否旨在提供布局,但我不确定如何执行此操作并且无法找到充当容器的自定义窗口小部件的示例.我已经研究了容器扩展示例,但它明确指出它是用于多页面小部件,所以我认为有一个更好的解决方案,我正在努力实现.
如何创建此自定义窗口小部件,以便将内部窗口小部件的布局公开给窗体编辑器,或者我应该以不同的方式接近它?
更新:通过完成我一直避免的容器扩展示例,我能够获得所需的功能.我只是将窗口小部件视为一个多页面窗口小部件,它总是返回同一页面.
但是,这会在窗口小部件的窗体编辑器上下文菜单中启用多页操作,例如插入页面,这会产生不良副作用.使用此操作会导致创建一个无法与之交互的小空白窗口小部件,并将其置于自定义窗口小部件的右上角.虽然这是一个小问题,但它阻止我将此解决方案作为答案发布.