QWidget外观逻辑
1.外观包括颜色、位置、形状和具体元素
1.1 颜色
1.2 位置
1.3 形状
一个元素的形状首先得参考元素得类型,如果是规则得几何体,规定形状所需要得就是一些特殊的属性,比如长方形用高和宽,三角形用边长与角度等。一般在软件中获得复杂形状先要依靠获得简单图形,由简单图形组合成复杂形状,因此软件中只需要抽象出形状的基本元素就行了,比如机械制图中使用点、线、基本图形、等加上一些操作就可以获得复杂的机械形状。在qt中控件的形状基本都是长方形,因此它的属性可以仅由长和宽来规定,最多加上位置信息为生成的控件提供一个生成的 位置。如果想要一个不是长方形的控件就需要通过paint重新绘制了。在派生类中重写的函数在派生类中会覆盖父类的同名函数而被优先调用。
有关形状的 属性:
baseSize : QSize //如果定义了增量sizeIncrement : QSize作为计算控件大小的 基准,对于新生成的控件,默认高和宽为0
sizeIncrement : QSize
geometry : QRect//不同于size : QSize,这个属性不仅包括控件的高和宽还包括它的坐标位置,当它的size超过了maximumSize : QSize和minimumSize : QSize规定的大小,它会自动调整,至于如何调整,就要受到sizePolicy : QSizePolicy的限制了。注意size的大小不包括window frame,因为frame是另一种元素。
size : QSize
height : const int
width : const int
maximumHeight : int
maximumWidth : int
minimumSize : QSize
maximumSize : QSize
rect : const QRect
minimumWidth : int
minimumHeight : int
minimumSizeHint : const QSize
sizePolicy : QSizePolicy//如果由QLayout管理它的部件,这个策略提供给QLayout使用,如果没有QLayout这个策略提供给自己用,不理会其他部件。对于长方形的部件主要就是选定方向拉伸收缩。尺寸策略默认为Preferred,它使用sizeHint : const QSize
建议的尺寸调整控件大小,sizeHint : const QSize,在没有QLayout存在的时候通常返回值为无效的值,在有布局的时候提供一个首选的尺寸。
sizeHint : const QSize
maximized : const bool//保存控件是否被最大化,仅对window 有效,但在某些window系统中有可能无效
minimized : const bool
normalGeometry : const QRect//这个看不懂