Qt, Designer создает scrollAreaWidgetContents в scrollArea, и я не могу изменить размер моего изображения - PullRequest
4 голосов
/ 21 сентября 2011

Я перетащил область прокрутки в дизайнер, а затем перетащил метку (imageLabel, для setPixmap).Затем я щелкнул правой кнопкой мыши и установил макет как сетку.

scrollArea = new QS.....
scrollAreaWidgetContents = new QWidget();
gridlayout = new QGri..(scrollAreaWidgetContents);
imageLabel = new QLabel(scrollAreaWidgetContents);
gridLayout->addWidget(imageLabel,.....);

scrollArea->setWidget(scrollAreaWidgetContents);

Итак, дизайнер создал приведенный выше код, осталось несколько частей, и теперь у меня в кодовом наборе ui-> imageLabel-> setPixmapи пытается сделать ui-> imageLabel-> resize (200,200).Но изображение всегда в полном размере 1600х1400 пикселей).

Примеры кода по сети, кажется, что они устанавливают imageLabel непосредственно в scrollArea и пропускают scrollAreaWidgetContents?Но я, кажется, не добиться этого от дизайнера?

Ответы [ 2 ]

0 голосов
/ 03 декабря 2012

Создание макета в дизайнере.Измените поля макета на ноль.Это должно привести к тому же результату, что и удаление scrollAreaWidgetContents из цепочки, и все же выполнимо через конструктор.

0 голосов
/ 22 сентября 2011

resize игнорируется большую часть времени, когда виджет находится внутри макета.

Вместо этого можно использовать setFixedSize или setMinimumSize, чтобы принудительно задать размер или размер, меньший, чем у изображения.

Также необходимо установить для свойства QLabel scaledContents значение True (в конструкторе или с помощью QLabel::setScaledContents) для масштабирования изображения до размера метки.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...