GridLayout的灵感来自于GridBagLayout管理器。它同样灵活,但对我来说更直观,而且它需要的样板代码也更少。
每个单元格是一个uicontainer,只能容纳一个子单元格。与GridBagLayout不同,子节点是在创建时通过传递单元格容器句柄作为父节点来添加的。不需要“添加”方法,这减少了代码的数量。
单元尺寸可以以像素或相对值指定。支持合并和删除单元格,以及各种对齐选项:拉伸,中心,左,右,顶金宝app部,底部。
存档还包括说明GridLayout功能的演示。非常感谢错误报告和改进建议。下载,解压缩,享受!
Mihail Petrov(2021)。GridLayout(//www.tatmou.com/matlabcentral/fileexchange/29472-gridlayout),Matlab中央文件兑换。检索到.
埃里克,布局。Cell属性本身就是一个uicontainers数组。这是GridLayout的主要特性之一。您不需要任何额外的功能。
要使套装的子对象更容易,例如嵌套的gridlayout和绘图,我认为一个函数,如gridlayout.wrapcell(行,col)会有所帮助。它会在单元格中创建UIContainer(),然后将句柄返回该容器。
另一个变化是用Lmargin,Rmargin,Tmargin和Bmargin替换Hmargin和Vmargin参数,即左,右,顶部和底部。这对轴非常有用。有关示例,请参阅演示7。
听起来很棒,等不及要试一试了!谢谢Mihail !
嗨,David和Eric,
仍然给我几天,我将上传固定版本。这几天我一直很忙......
感谢您的反馈意见!
很酷的图书馆,谢谢!我遇到了Eric Cousineau上面提到的问题2。确实需要能够处理一个轴对象中的多个子对象,以实现绘图的功能。
确定的东西!我在构造函数中注释了一小部分,以允许~ ishhandle()对象包含一个GridLayout。
我还更新了updatelayout()方法以允许绘图。
我已经上传了一个diff文件:http://pastebin.com/knn05prr.
然而,我认为如果plot和子GridLayouts都封装在uicontainers()中可能会更容易一些——这样它们就可以被包含在一个GridLayout中。我认为这个包装可以在第一次调用UpdateLayout()时发生。
Eric,谢谢你的反馈和评价。
你能指出你在代码中到底更改了什么吗?在过去的几个月里,我自己做了一些小小的改变,我想在上传一个新版本之前把它们和你的合并。
我刚意识到一些事情:
1)你可以通过在构造函数中禁用check (ishghandle())来嵌套GridLayout,并将其封装在uicontainer中。
2)如果你为你的情节添加图例,它将引入额外的子单元,造成错误。最好的解决办法就是把它包装在容器里。这也是另一个bug修正,即添加情节时不使用任何变通方法。
这是一个很棒的GridBagLayout还原!
我注意到在调整绘图时有一个bug。发现杰森的布局有问题。GridBagLayoutand incorporated it into GridLayout.ResizeCell().
我已经把代码上传到
http://pastebin.com/fqRhFCgC
再一次感谢您!