在QSplitter中,geometry表示控件的位置和大小。
该属性的类型是QRect,包含了控件的左上角坐标和宽高信息。您可以使用geometry()函数来获取控件的当前位置和大小,并使用setGeometry()函数将其设置为新的位置和大小。
// 创建QSplitter控件
QSplitter *splitter = new QSplitter(Qt::Horizontal, this);
// 添加子控件
QWidget *widget1 = new QWidget(splitter);
QWidget *widget2 = new QWidget(splitter);
splitter->addWidget(widget1);
splitter->addWidget(widget2);
// 获取splitter控件的当前位置和大小
QRect splitterGeometry = splitter->geometry();
qDebug() << "splitter current geometry: " << splitterGeometry;
// 将splitter控件的位置和大小设置为新值
splitter->setGeometry(100, 100, 400, 200);
在QWidget类中,sizePolicy是一个QSizePolicy类型的属性,表示该部件的大小策略。
具体来说,sizePolicy属性包含了三个元素:horizontalPolicy、verticalPolicy和controlType。其中,horizontalPolicy和verticalPolicy是QSizePolicy中的两个枚举类型,分别表示部件在水平方向和垂直方向上的大小策略;controlType是一个枚举类型,表示控制部件大小的方式。
horizontal:
"hori-"这个前缀源于拉丁语 "horizōn",意为“水平线”,因为在人类的视野范围内,地球表面和天空的相交处形成了一条明显的水平线。因此,在英语和许多其他语言中,“hori-”通常用于表示水平方向或位置。
"zon" 不是一个独立的词根,但是它可以出现在一些词中,如zone(区域),azonic(无土壤的)。通常来说,这些词都来源于希腊语的词根 "zōnē",表示“带、带状区域”。
vertical:
"vertical"的词根来自于拉丁语 "vertex",意为“转折点、顶点”,在解析几何中指线段两个端点之间垂直于平面的直线。"Vertex" 的原始含义为“旋转、颠簸”, 借用到现代英语中,其衍生出了不同的涵义,如指高空中形成的中心风眼或山峰的尖顶等。在现代英语中,“vertical”通常用来形容垂直于地面或垂直于水平面的方向、位置、线条或形状。
"-tical"是一个常用的表示形容词的后缀,在许多英语单词中都有出现。它通常起到派生、变形或强化词语含义的作用。例如:“analytical”(分析的)、“critical”(批判的)、“theoretical”(理论的)等词都是由添加了“-tical”后缀而来。
可以使用以下代码获取和设置QWidget对象的sizePolicy属性:
QWidget *widget = new QWidget(parent);
QSizePolicy sizePolicy(QSizePolicy::Expanding, QSizePolicy::Preferred);
widget->setSizePolicy(sizePolicy); // 设置部件的大小策略
在上述代码中,我们首先创建了一个QWidget对象,并将其存储在指针变量widget中。然后,通过创建一个QSizePolicy对象,指定部件的水平方向的大小策略为Expanding,垂直方向的大小策略为Preferred,并将结果存储在QSizePolicy类型的变量sizePolicy中。最后,使用QWidget的setSizePolicy()函数,设置QWidget对象的大小策略为sizePolicy。
需要注意的是,QWidget的sizePolicy属性只对使用布局管理器进行布局的窗口部件有效。如果在不使用布局管理器的情况下设置了QWidget的sizePolicy属性,那么这些属性将不会生效,因此应该避免在不使用布局管理器的情况下设置QWidget的sizePolicy属性。
其中,垂直方向或者水平方向的大小策略可以是Fixed、Minimum、Maximum、Preferred、Expanding或Ignored之一。
具体使用方法如下:
- Fixed:固定大小策略
该大小策略表示控件希望在布局中保持固定的大小不变。可以通过以下代码将控件的水平和垂直大小策略设置为Fixed:
- Minimum:最小大小策略
该大小策略表示控件希望在布局中至少有一个最小尺寸。
- Maximum:最大大小策略
该大小策略表示控件希望在布局中至多有一个最大尺寸。
- Preferred:首选大小策略
该大小策略表示控件希望在布局中达到其首选尺寸。
- Expanding:伸缩大小策略
该大小策略表示控件希望在布局中可以自由伸缩。
- Ignored:忽略大小策略
该大小策略表示控件希望在布局中大小被忽略。