Название: Резиновый QGraphicsView ??? Отправлено: KyberProtagonistes от Сентябрь 01, 2009, 20:17 Можно ли данный виджет сделать scratched? То есть, чтобы его размер динамически изменялся, в зависимости от того, какую я в него кидаю картинку? Я в кьюте недавно. В Борланд С++ Билдере или в wxDev-C++ это делалось просто установкой флагов Scratched или Autosize в положение true. А тут я что-то такого не нашёл.
Если такого простым флагом сделать нельзя, то не могли бы вы подсказать, как это реализовать кодом? Я имею ввиду посмотреть размер картинки и присвоить соответствующий размер виджету QGraphicsView. А потом уже загрузить в него эту картинку. Название: Re: Резиновый QGraphicsView ??? Отправлено: KyberProtagonistes от Сентябрь 01, 2009, 20:19 Кстати, как я понял, картинку запихнуть в QGraphicsView "мышкой" в QDesigner тоже нельзя? Обязательно нужно делать это в коде?
Название: Re: Резиновый QGraphicsView ??? Отправлено: f0x от Сентябрь 01, 2009, 21:05 если я правильно понял тебе нужен QLabel
Название: Re: Резиновый QGraphicsView ??? Отправлено: KyberProtagonistes от Сентябрь 01, 2009, 21:10 И правда, спасибо. Кьют оказывается очень оригинален. Я и предположить не мог, что в объект "лейбл" можно запихнуть картинку... :D
Название: Re: Резиновый QGraphicsView ??? Отправлено: KyberProtagonistes от Сентябрь 01, 2009, 21:27 Хм. Картинку я туда запихнул. Удобно. Но всё равно не нашёл как сделать этот элемент "резиновым"... ???
Название: Re: Резиновый QGraphicsView ??? Отправлено: Авварон от Сентябрь 01, 2009, 21:35 в смысле резиновым? у него если контента много, появляются скроллбары. Или тебе нужно растягивать сам виджет, на котором он лежит? Чтоб скроллбаров не было?
Название: Re: Резиновый QGraphicsView ??? Отправлено: KyberProtagonistes от Сентябрь 01, 2009, 21:37 Мне скроллбары не нужны. Я хочу, чтобы если картинка, которую я запихиваю в QLabel имеет размер 10*10, сам QLabel менял свой размер тоже на 10*10. Если картинка 100*100, то чтобы QLabel стал размером 100*100.
Название: Re: Резиновый QGraphicsView ??? Отправлено: f0x от Сентябрь 01, 2009, 21:42 void setScaledContents ( bool )
внимательней читай доки Название: Re: Резиновый QGraphicsView ??? Отправлено: KyberProtagonistes от Сентябрь 01, 2009, 21:45 Нет, это не то. Если установить это в тру, то он растягивает картинку к размеру кьюлейбла. А мне нужно наооборот: чтобы кьюлейбл растягивался или съёживался в зависимости от размера картинки.
Название: Re: Резиновый QGraphicsView ??? Отправлено: KyberProtagonistes от Сентябрь 01, 2009, 21:48 Нашёл! label->adjustSize(); Всем спасибо, кто натолкнул на мысль! =)
Название: Re: Резиновый QGraphicsView ??? Отправлено: Авварон от Сентябрь 01, 2009, 21:56 осталось только разобраться с макс размером и как следствие - пропорциями)
Название: Re: Резиновый QGraphicsView ??? Отправлено: KyberProtagonistes от Сентябрь 01, 2009, 21:59 На макс. размер есть ограничение. А пропорции, вроде, меня не интересуют: что квадрат, что прямоугольник. Оно ко всему "прилипнет". А мне это и надо :D
Название: Re: Резиновый QGraphicsView ??? Отправлено: Авварон от Сентябрь 01, 2009, 22:42 я сейчас экспериментировал с лейблом с изображением 2600*3800 точек) адекватно (ограничить размерами хотя бы экрана + пропорции) не получилось его сделать сходу:(
Название: Re: Резиновый QGraphicsView ??? Отправлено: KyberProtagonistes от Сентябрь 02, 2009, 16:27 Я, как уже писал, новичёк в кьюте и не очень шарю в самом Дизейнере. Но Вашу проблему, думаю, можно решить кодом. Получаете в коде программы димэншенсы картинки загружаемой. Видите сразу пропорции. Изменяете размер лейбла в соответствии с пропорциями. А потом делаете для этого лейбла setScaledContents(тру) Как-то так ;)
Название: Re: Резиновый QGraphicsView ??? Отправлено: Авварон от Сентябрь 02, 2009, 18:43 ну это само собой... я пробовал нативные методы, без прямых расчетов...
|