Название: QPushButton и Изображение Отправлено: Григорий от Апрель 04, 2012, 09:57 Уважаемые форумчане, как сделать чтобы кнопка созданная вот таким образом
Код: btn = new QPushButton(QIcon(":shut.png"),"") т.е с пустым текстом и неким изображением, могла при растяжении по вертикали и горизонтали тянуть и это изображении без нарушения пропорций (т.е изображение было всегда максимальным внутри рамки кнопки но при этом и сохраняло свои пропорции) дайте мне направление советом в нужную сторону, что там надо добавить стиль может какой? Название: Re: QPushButton и Изображение Отправлено: GreatSnake от Апрель 04, 2012, 10:12 Опять ты с этим растягиванием)
Стандартных средств нет. Можно попробовать перегрузить QPushButton::resizeEvent() и в нём выставить соответствующий размер через setIconSize(). Но нет гарантий, что это будет портабельно, т.к. кнопка очень platform-specific контрол. Название: Re: QPushButton и Изображение Отправлено: Григорий от Апрель 04, 2012, 11:07 Опять ты с этим растягиванием) Стандартных средств нет. Можно попробовать перегрузить QPushButton::resizeEvent() и в нём выставить соответствующий размер через setIconSize(). Но нет гарантий, что это будет портабельно, т.к. кнопка очень platform-specific контрол. хорошо делаю свой класс с перегруженым событием Код: class Button : public QPushButton { а вот что в самом евенте писать ?, если ставить что я закоментил то у меня получается цикл изменение размера иконы порождает новый ресайз эвент и кнопка тянется до бесконечности((... Название: Re: QPushButton и Изображение Отправлено: GreatSnake от Апрель 04, 2012, 11:48 Не ну так же нельзя...
Ведь кнопка состоит помимо иконки как минимум ещё и из рамки и отступов. Выставляя размер иконки в текущий размер кнопки размер кнопки будет пересчитан и получится рекурсия. Поэтому размер иконки нужно рассчитывать с учётом рамки и отступов: Код Ежели всё-равно будет рекурсия, то придётся вставить так называемые guard-ы. Название: Re: QPushButton и Изображение Отправлено: andrew.k от Апрель 05, 2012, 00:22 Ежели всё-равно будет рекурсия, то придётся вставить так называемые guard-ы. А кто такие? Расскажешь?Название: Re: QPushButton и Изображение Отправлено: Bepec от Апрель 05, 2012, 07:03 Я думаю что это аналог булевских переменных, просто более красиво оформленных.
Проще выражаясь - запрет на перерасчёт размеров в момент изменения размеров картинки. Название: Re: QPushButton и Изображение Отправлено: andrew.k от Апрель 05, 2012, 10:51 Я думаю что это аналог булевских переменных, просто более красиво оформленных. Гадать я тоже могу. Я спросил, чтобы знать достоверно.Проще выражаясь - запрет на перерасчёт размеров в момент изменения размеров картинки. Название: Re: QPushButton и Изображение Отправлено: GreatSnake от Апрель 05, 2012, 11:41 А кто такие? Расскажешь? Проще выражаясь - запрет на перерасчёт размеров в момент изменения размеров картинки. Именно так)Код
Название: Re: QPushButton и Изображение Отправлено: Bepec от Апрель 05, 2012, 12:01 Профит ;)
Название: Re: QPushButton и Изображение Отправлено: andrew.k от Апрель 05, 2012, 12:12 А кто такие? Расскажешь? Проще выражаясь - запрет на перерасчёт размеров в момент изменения размеров картинки. Именно так)Код
Название: Re: QPushButton и Изображение Отправлено: GreatSnake от Апрель 05, 2012, 12:14 PFF тогда не интересно) Ну вот, знал бы, не писал бы)Название: Re: QPushButton и Изображение Отправлено: Bepec от Апрель 05, 2012, 12:24 А все гварды на этом стоят ;) Пусть и не интересно, зато функционально ;)
Название: Re: QPushButton и Изображение Отправлено: andrew.k от Апрель 05, 2012, 13:06 Не написал бы, я бы не узнал бы)
|