Qt不用Qdockwidget实现布局高度调节
时间: 2023-11-01 09:06:42 浏览: 46
如果你不想使用QDockWidget,可以使用QWidget和QVBoxLayout来实现布局高度调节。具体步骤如下:
1. 创建一个QWidget作为主窗口,并设置布局为QVBoxLayout。
2. 在QVBoxLayout中添加需要布局的子控件。
3. 为QWidget设置一个最小高度,以确保它不会缩小到无法容纳子控件。
4. 为QVBoxLayout设置一个stretch因子,以确保子控件可以自动填充剩余空间。
5. 如果需要调节高度,则可以使用QSplitter或QResizeEvent来手动调整子控件的高度。
以下是一个简单的示例代码:
```cpp
#include <QtWidgets>
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
QWidget* mainWidget = new QWidget;
QVBoxLayout* mainLayout = new QVBoxLayout(mainWidget);
mainLayout->addWidget(new QLabel("Label 1"));
mainLayout->addWidget(new QLabel("Label 2"));
mainLayout->addWidget(new QLabel("Label 3"));
mainLayout->addWidget(new QLabel("Label 4"));
mainWidget->setMinimumHeight(200);
mainLayout->setStretchFactor(mainLayout->itemAt(3), 1);
mainWidget->show();
return a.exec();
}
```
这个例子中,我们创建了一个QWidget作为主窗口,使用QVBoxLayout来布局四个QLabel控件。我们将QWidget的最小高度设置为200,使其不会缩小到无法容纳子控件。我们还使用setStretchFactor方法将最后一个子控件的stretch因子设置为1,以便它可以自动填充剩余空间。
相关推荐
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)