UI布局引擎Layout 之 QGraphicsAnchorLayout
2012-09-24 17:10
357 查看
总体来说,当前4.7 版本中的 AnchorLayout 还不甚完善(AnchorLayout 是从QT4.6引入的),不过主体功能已经完成。
从上述类图中可以看出,AnchorLayout 与其他的布局类有个区别,AnchorLayout没有依赖QGridLayoutEngine,所以可以知道AnchorLayout的排版工作是自己负责的。进一步观察发现,布局中引入了两个类 AnchorData, QGraphicsAnchor,正是这两个工具类,来解耦AnchorLayout的排版布局框架,AnchorData是算法对内结构体,QGraphicsAnchor是算法的对外表现接口。 内部的实现方式是基于有向图论实现结构的存储。 然后在排版子空间的时候,从两个方向依次排版 Vertical: 1. 获取 Item 的 PreferredSize 2.根据Achonr链表得到 item 的 top 和 bottom 坐标, 同样的方法获取 left 和 right 坐标 3.item->setGeometry(rect) 实现细节待续。
从上述类图中可以看出,AnchorLayout 与其他的布局类有个区别,AnchorLayout没有依赖QGridLayoutEngine,所以可以知道AnchorLayout的排版工作是自己负责的。进一步观察发现,布局中引入了两个类 AnchorData, QGraphicsAnchor,正是这两个工具类,来解耦AnchorLayout的排版布局框架,AnchorData是算法对内结构体,QGraphicsAnchor是算法的对外表现接口。 内部的实现方式是基于有向图论实现结构的存储。 然后在排版子空间的时候,从两个方向依次排版 Vertical: 1. 获取 Item 的 PreferredSize 2.根据Achonr链表得到 item 的 top 和 bottom 坐标, 同样的方法获取 left 和 right 坐标 3.item->setGeometry(rect) 实现细节待续。
相关文章推荐
- UI布局引擎Layout 之 QGraphicsLinearLayout
- UI布局引擎Layout 之 QGraphicsGridLayout
- UI布局引擎Layout 之 QGraphicsLayoutEngine剖析
- UI布局引擎Layout
- iOS8开发~UI布局(二)storyboard中autolayout和size class的使用详解
- 【UI布局】浅谈android五大布局-FrameLayout、LinearLayout、AbsoluteLayout、RelativeLayout、TableLayout】
- Android UI之TableLayout(表格布局)
- iOS8开发~UI布局(二)storyboard中autolayout和size class的使用详解
- UI复习-布局管理器RelativeLayout(导航方向菜单)
- iOS8开发~UI布局(二)storyboard中autolayout和size class的使用详解
- 7.QMUI----QMUICollapsingTopBarLayout的用法 (头部布局)
- iOS8开发~UI布局(二)storyboard中autolayout和size class的使用详解
- Android UI RelativeLayout相对布局
- iOS8开发~UI布局(二)storyboard中autolayout和size class的使用详解
- iOS8开发~UI布局(二)storyboard中autolayout和size class的使用具体解释
- JQuery UI Layout Plug-in布局
- easy-ui学习记录-layout布局
- FlexboxLayout UI布局
- jQuery Easy UI (适应屏幕分辨率大小)布局(Layout)
- javafx之布局layout及UI控件事件处理canvas,效果,杂乱笔记