Qt 设计可自适应的“图形用户界面”

Qt 的“图形用户界面”是设计软件时需要考虑的问题。通常存在的问题是,不熟悉布局的用户在设计界面时,往往忽略了”布局“和”占位“功能的使用,而是直接往默认窗体上拖放控件,是一种“绝对定位”的方式。这样造成的问题时,窗口布局上的控件只有在设计尺寸时才是设计的样子,一旦拖拉窗体,会发现窗体变大而控件还保持原地不变,不能够根据窗体扩展而自适应。这显然不符合逻辑的。其实,Desinger 是有提示的,在顶级Widget 前面有个红色圆圈禁止图标,表明顶级widget没有添加布局。

熟练使用布局和占位,是做好图形界面的前提。Qt预定义的布局管理器总共有四种:QBoxLayout、QGridLayout、QFormLayout、QStackedLayout,它们都是QLayout的子类。

下面两篇文章分别是用代码和设计器两种方式来实现同一种布局,使用了 QHBoxLayout 水平布局  和 QGridLayout 栅格布局 以及占位符 addStretch()。比较直观演示了实现方法:

Qt中设计可自适应的用户界面(裸写代码篇)
_http://darrending.com/2016/07/07/qt%e4%b8%ad%e8%ae%be%e8%ae%a1%e5%8f%af%e8%87%aa%e9%80%82%e5%ba%94%e7%9a%84%e7%94%a8%e6%88%b7%e7%95%8c%e9%9d%a2%ef%bc%88%e8%a3%b8%e5%86%99%e4%bb%a3%e7%a0%81%e7%af%87%ef%bc%89/

Qt设计可自适应的用户界面(Qt Designer篇)
_http://darrending.com/2016/07/11/qt%e8%ae%be%e8%ae%a1%e5%8f%af%e8%87%aa%e9%80%82%e5%ba%94%e7%9a%84%e7%94%a8%e6%88%b7%e7%95%8c%e9%9d%a2%ef%bc%88qt-designer%e7%af%87%ef%bc%89/

下面4篇文章则详细介绍了各种布局的细节和用法:

Qt学习之路13–布局管理器(QBoxLayout)
_https://blog.csdn.net/tqs_1220/article/details/81841571

Qt学习之路14–布局管理器(QGridLayout)
_https://blog.csdn.net/tqs_1220/article/details/81842878

Qt学习之路15–布局管理器(QFormLayout)
_https://blog.csdn.net/tqs_1220/article/details/81878780

Qt学习之路16–布局管理器(QStackedLayout)
_https://blog.csdn.net/tqs_1220/article/details/81916159

Qt5布局管理(一)——QSplitter分割窗口类
_https://www.cnblogs.com/fuqia/p/8882994.html

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.