Qt setGeometry为负值不起作用

时间:2015-07-29 14:08:48

标签: c++ qt

我正在使用QT,我在QFrame中有一个带有QLabel的表单。我想设置QLabel的几何体,使QLabel的底部位于框架底部的同一位置。由于标签比框架长,因此y坐标应为负。

int pos =  ui->imageFrame->height() - ui->imageLabel->pixmap()->height();
ui->imageLabel->setGeometry(0, pos, ui->imageFrame->width(), p.height());

虽然在打印QLabel的几何图形时,y坐标是正确的,但标签显示在框架的上半部分。

非常感谢帮助。

1 个答案:

答案 0 :(得分:0)

您可以使用setAlignment设置标签的对齐方式。这是一个有效的例子:

#include <QtWidgets>

#include "MyWidget.h"

MyWidget::MyWidget()
{
  setFixedSize(200,200);
  QLabel *label = new QLabel;
  label->setPixmap(QPixmap("/some/image/file.jpg"));
  label->setAlignment(Qt::AlignBottom);
  QHBoxLayout *hbox = new QHBoxLayout;
  hbox->addWidget(label);
  hbox->setContentsMargins(0,0,0,0);
  setLayout(hbox);
}