Qt QLabel setPixmap нежелательное заполнение

У меня есть QLabel с размером политики QSizePolicy::Expanding в обоих измерениях, в которых я хочу показать изображение с QLabel::setPixmap, Главное окно не должно быть изменено, поэтому я масштабирую растровое изображение перед установкой размера QLabel.

Изображение установлено правильно, но сверху и снизу есть отступ, который я не хочу, сверху 12 пикселей, снизу 13 пикселей. setPixmap-команда изменяет размер QLabel и главного окна. Я не могу понять, почему. Таблица стилей QLabel пуста. Я могу покрасить фон QLabel, чтобы увидеть, что дополнительное пространство является отступом QLabel (или поля растрового изображения). Когда я пытаюсь изменить размер главного окна, я не могу сделать его настолько маленьким, чтобы эта лишняя граница исчезла, я могу увеличить его и увеличить отступ со всех сторон (как и ожидалось), но я не могу уменьшить его, чтобы избавиться от него это дополнительный запас.

Кто-нибудь знает, что может вызвать это?

РЕДАКТИРОВАТЬ:

добавил немного кода.
Перед этими строчками ui->label_title пусто и label_title находится в той же вертикальной компоновке только на вершине label_main, Я просто подумал, что когда для некоторого текста установлено значение label_title, макет еще не обновляется, поэтому следующая строка возвращает старый размер, а затем изображение становится слишком большим, потому что заголовок занимает некоторое место, а главное окно необходимо изменить. Есть ли команда для обновления макета, чтобы все виджеты в ней получили новый размер? layout->update(); не сработало.

ui->label_title->setText(imgNames.at(crntItemNr));
QSize size = ui->label_main->size();
ui->label_main->setPixmap(images.at(crntItemNr).scaled(size, Qt::KeepAspectRatio, Qt::SmoothTransformation));

0

Решение

Проблема была wordwrap label_title, как объяснено на доктор. Поведение label_main было странным, что затрудняло поиск причины в label_title.

1

Другие решения

Вероятно, потому, что вы используете неправильные измерения для размера вашего окна. Вы думаете с точки зрения блочной модели и обращаетесь к геометрии, а она измеряет по-другому:

http://qt-project.org/doc/qt-5.0/stylesheet-customizing.html

http://qt-project.org/doc/qt-4.8/application-windows.html#window-geometry

Трудно понять, что именно не так без примера кода.

Надеюсь, это поможет.

0

По вопросам рекламы [email protected]