详解QT布局管理界面

详解QT布局管理界面

ID:46222427

大小:418.30 KB

页数:6页

时间:2019-11-21

详解QT布局管理界面_第1页
详解QT布局管理界面_第2页
详解QT布局管理界面_第3页
详解QT布局管理界面_第4页
详解QT布局管理界面_第5页
资源描述:

《详解QT布局管理界面》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、详解QT布局管理界面栅格布局管理器町以以网格的形式,将它所管理的部件以一定的矩阵形式排列。比如上图中,所有的部件一起看,其实就是一种矩阵的形式來排列的。栅格布局管理器最典型的用法是将部件规规矩矩的排列好,每个栅格的单元格里放一个部件,如卜•图的示例:ItalicObliqueFontstyle(Romanize1014SansGillPalatinoCourierHelveticaRomanTimesFontmes•・・••>:・•>:类似上图这种布局比较容易实现,只需要把各个部件填入到指定的单元格里即可,示例代码如下:1m_Layout->addWidget(L

2、abell,0,0);//将Labell填至U(0,0)单元格2m_Layout->3ddWidget(LBbel2,0,2);//将Label2填至U(0,2)单元格3……而我们要实现的这个温度转换器的界而,并不是一个规则的栅格结构。而是如下这种结构:Centigr^teFahrenheit$:.::'f:z:/m;2422芥、/c乂…厶XraiiwcoTemperature上图中的这6部分,并不是规规矩矩的栅格形式。那怎么办呢?没关系,栅格布局管理器提供了很大的灵活性。具体表现在,町以设定某个部件是否筋耍横跨n个列,或者是否需要纵越m个行~~。什么意思、呢?先

3、来看一个简单的例了bHihi以上而这种布局来说,三个部件其中有两个部件是比较规矩的处于两个单元格内,但是笫三个部件就横跨了两列,实际上,我们可以这样來看这张布局图:这样就一目了然了。笫三个部件的确是横跨了两列(在水平方向上占用了两个单元格)。在使川栅格布局管理器对三个部件进行管理时,就可以这样:1m_Layout->addWidget(m_Widgetlz0,0);//第一个部件在(0,0)1m_Layout->addWidget(m_Widget2,0,1);//第二个部件在(0,1)2m_Layout->addWIdget(m_Widget3,1,0,1,2)

4、;//第三个部件起始于(1,0)»并纵越1行,横跨2列同样的,再看下图:1Xid我们可以认为右侧的部件纵越了两行(在垂直方向上占用了两个单元格),对应的示例代码:7m_Layout->addWidget(m_Widgetl,m_Layout->addWidget(m_Widge9m_Layout->addWIdget(m_Widget3,纵越2行,横跨1列0,0);//第一个部件在(0,0)1,0);//第二个部件在(1,0)0,lz2,1);//第三个部件起始于(0,1),并这其实很类似于HTML里利用Table做网页布局吋使用的手段。稍微了解一些HTML的人都

5、会知道,在Table布局时,单元格会冇rowSpan和colSpan的参数,这两个参数的意义其实就是所谓的“纵越n个行”和“横跨m个列”。这里,栅格布局管理器的布局方式,跟它完全一致。OK,回头再看看我们需要实现的界而。我们现在有了rowSpan和colSpan的概念,那么,我们町以把那张界面布局图变换一下:我们把交叉的这些线全部延伸开,可以看到,整个界Ifli被拆分成了3x4个单元格,此时,我们就会惊呼,哈哈,这不就是规规矩矩的栅格了吗(虽然它的侮个单元格不是一样人,但是没关系,至少行和列都是规矩的了)。0K,那就开始我们的界面布局吧。为了方便观察,我在每个单元

6、格里标注上他们的编号:首先看Quit按钮,它起始于(0,0),横跨3个单元格,也就是colSpan=3,所以:10m_Layout->addWidget(m_QuitButtonz0,0,1,3);然后是“Centigrade”,这个Label起始于(1,0),横跨2个单元格,也就是colSpan=2,所以:11m_Layout一>addWidget(m_CenL3bel,1z0,1,2);然后是“Fahrenheit”,这个Label起始于(1,2),它刚好占用1个单元格,所以没冇rowSpan和colSpan(或者说rowSpan和colSpan都是1),所以

7、:12m_Layout->addWidget(m_FahLabel,1z2);再然后是“0”这个Label,它起始于(2,0),纵越2个单元格,rowSpan二2,所以:13m_Layout->addWidget(m_Labelz2,0,2,1);再然后是Slider,它起始于(2,1),纵越2个单元格,rowSpan=2,所以:14m_Layout->addWidget(m_Sliderz2,1,2,1);再然后是LCDNumber,它起始于(2,2),占用一个单元格,所以:15m_Layout->addWidget(m_LCDNumber,2,2);最后是Di

8、al表盘,

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。