2015-07-29 2 views
0

Im работает с QT, и у меня есть форма с QLabel в QFrame. Я хочу установить геометрию QLabel, поэтому нижняя часть QLabel находится в одном и том же месте нижней части кадра. Поскольку метка длиннее кадра, координата y должна быть отрицательной.Qt setGeometry to negative value не работает

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

Хотя при печати геометрии QLabel, в координате у правильно, метка показывает на верхней части рамы.

Помощь очень ценится.

ответ

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); 
} 
Смежные вопросы