QSpacerItem
QSpacerItem就是Qt设计模式中的分隔条,有人可能说一个分隔条有什么可研究的,我之前也是这么想,没想到今天发现里面玄机还真是不少。
首先看最神奇的一个现象:不添加到布局的分隔条无法在设计模式中保存。
在窗口上拖两个分隔条,一横一竖。
然后保存
重新打开后,发现两个分隔条竟然不见了!既然保存后分隔条不见了,那么每次编译也就不会在ui_.h里产生QSpacerItem了,因为编译之前会保存。
最好不要给分隔条改名,也就是spacerName
,虽然修改后在代码里仍可使用,但是不知为什么QSpacerItem
类没有这个成员函数,所以不能在代码里改名只能在设计模式里改,不过一般也不会在C++里操作它。
QSpacerItem的基类QLayoutItem
是个抽象类,有几个纯虚函数,提供的是QLayout能操作的抽象对象(abstract item)。我是这样理解抽象对象的:注意QLayoutItem没有基类,所以没有继承QWidget,而QWidget的所有子类都覆盖了函数paintEvent
,实现了控件的形状,