使用QSpacerItem可以对ui中进行更好的布局,但是使用中有一些需要注意,如下

#include "DrawerWidget.h"
#include "ui_DrawerWidget.h"
#include "DrawerWidgetItem.h"
DrawerWidget::DrawerWidget(QWidget *parent)
: QWidget(parent)
, ui(new Ui::DrawerWidget)
{
ui->setupUi(this);
/** 重点 */
// ui->verticalSpacer->changeSize(20, 1080, QSizePolicy::Minimum, QSizePolicy::Expanding);
for(int i=0;i<3;i++)
{
DrawerWidgetItem* item = new DrawerWidgetItem(this);
ui->verticalLayout_2->addWidget(item,Qt::AlignTop);
QObject::connect(item,SIGNAL(signlResize()),this,SLOT(signlResize()));
}
}
DrawerWidget::~DrawerWidget()
{
delete ui;
}
void DrawerWidget::signlResize()
{
QList<DrawerWidgetItem*> item_list = this->findChildren<DrawerWidgetItem*>("visible");
DrawerWidgetItem* item;
foreach(item,item_list)
{
if(item!=sender())
{
item->slotClicked();
}
}
}
窗口在空白区域的高度小于UI中设置的QSpacerItem的高度时,展示效果是没有问题的,但是全屏之后空白区域超过了UI中设置高度,效果就有问题了


所以在构造函数中,我重新设置了QSpacerItem的高度
ui->verticalSpacer->changeSize(20, 1080, QSizePolicy::Minimum, QSizePolicy::Expanding);
效果如下

优化QSpacerItem布局:适配全屏的 DrawerWidget 实现
本文探讨如何在 DrawerWidget 中调整 QSpacerItem 的大小以适应不同屏幕尺寸,避免空白区域超出预期。通过实例代码和解决策略,分享在全屏状态下保持UI布局合理的方法。
2029

被折叠的 条评论
为什么被折叠?



