QSplitter添加三个控件,使中间控件宽度固定不变
时间: 2024-10-16 13:03:44 浏览: 17
C# DataGridView单元格中动态添加多个控件
5星 · 资源好评率100%
QSplitter是Qt库中的一个部件,用于分割和管理窗口内的其他部件。如果你想在QSplitter上添加三个控件,并保持中间控件的宽度始终不变,你可以按照以下步骤操作:
1. 创建QSplitter实例:首先,你需要创建一个QSplitter对象,例如水平分隔符(`QSplitter::Orientation::Horizontal`)或垂直分隔符(`QSplitter::Orientation::Vertical`),这取决于你的布局需求。
```cpp
QSplitter *splitter = new QSplitter(Qt::Horizontal);
```
2. 添加控件:然后将你的三个QWidget对象添加到分隔器中。中间那个设置为固定的宽度,可以使用`setSizes()`函数。假设第三个元素是你想保持固定宽度的对象,设其索引为1(从0开始计数)。
```cpp
splitter->addWidget(widget1); // 左侧控件
splitter->addWidget(widget2); // 中间控件,设置宽度
splitter->setSizes({0, widget2->minimumSizeHint().width(), 0}); // 第二个索引处设定宽度,其余自动分配
splitter->addWidget(widget3); // 右侧控件
```
这里的`minimumSizeHint()`会返回控件最小的显示尺寸,如果需要特定的宽度,可以替换为具体的像素值。
3. 显示和布局:最后,在合适的窗口或其他容器中放置这个QSplitter。
```cpp
(QWidget *parent) {
QVBoxLayout *layout = new QVBoxLayout(parent);
layout->addWidget(splitter);
parent.setLayout(layout);
}
```
阅读全文