我想在网格布局中放置一堆垂直布局,并且这些垂直布局的计数是未定义的。在每个垂直布局中,我在标签中有一张照片,在照片下面有另一个标签中的标题,我将这个垂直布局插入到网格布局中:
int j = 0;
ui->profile_post_layout->setContentsMargins(0,0,0,0);
for(int i = 0; i < posts.size(); i++)
{
QPixmap * pic = new QPixmap(QString::fromStdString(url));
QPixmap* mypix = new QPixmap(pic->scaled(QSize(50,50), Qt::KeepAspectRatio));
QLabel* photo = new QLabel;
photo->setPixmap(*mypix);
QLabel* label = new QLabel(QString::fromStdString(title));
QVBoxLayout* layout = new QVBoxLayout;
layout->addWidget(photo);
layout->addWidget(label);
layout->setContentsMargins(0,0,0,0);
ui->profile_post_layout->addLayout(layout,j,i);
if(i % 4 == 0)
j++;
}
但结果是带有标签的照片距离太远,这意味着设置的内容边距不起作用。这是screenshot。 怎么处理这个问题? TNX。
答案 0 :(得分:0)
如果问题是照片和标签之间的距离太远,这不是因为分配setContentMargins(0,0,0,0)
,实际上通过这样做,它会进一步缩短距离(删除边距)。
在布局中使照片和标签紧凑的一种方法是,您可以尝试在网格布局中在循环的末尾添加垂直间隔。
如果您遇到类似布局问题的问题,可以随时通过ui设计师创建一个简单的测试,并在编码中对您的实际布局进行实验,这有助于理解问题。