У меня есть 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));
Проблема была wordwrap
label_title, как объяснено на доктор. Поведение label_main было странным, что затрудняло поиск причины в label_title.
Вероятно, потому, что вы используете неправильные измерения для размера вашего окна. Вы думаете с точки зрения блочной модели и обращаетесь к геометрии, а она измеряет по-другому:
http://qt-project.org/doc/qt-5.0/stylesheet-customizing.html
http://qt-project.org/doc/qt-4.8/application-windows.html#window-geometry
Трудно понять, что именно не так без примера кода.
Надеюсь, это поможет.