Название: Автоматическое изменение размера иконки кнопки Отправлено: kolts от Октябрь 19, 2015, 00:38 Есть несколько кнопок на форме. Кнопки могут менять размер. Как сделать так, чтоб автоматически менялись иконки при изменении размера кнопок.
Пока сделал через eventFilter bool eventFilter(QObject *o, QEvent *e) { if(e->type() == QEvent::Resize) { QPushButton *button = qobject_cast<QPushButton*>(o); if(button) { button->setIconSize(QSize( button->icon().actualSize(button->size()).width() - 10, button->icon().actualSize(button->size()).height() - 10)); } else return false; } return false; } -10 потому что кнопка расширяется больше чем надо. За временное решение сойдет, но может есть более умный и легкий способ? Название: Re: Автоматическое изменение размера иконки кнопки Отправлено: gil9red от Октябрь 19, 2015, 01:23 Переопределить QPushButton и в него засунуть корректировку размера иконок.
Через eventFilter, по мне, проще будет :) Название: Re: Автоматическое изменение размера иконк Отправлено: kolts от Октябрь 19, 2015, 01:41 Цитировать Через eventFilter, по мне, проще будет Мой способ?Мутный он какой то, у меня есть кнопка которая скрывает и показывает виджет на форме, за счет этого эти самые кнопки с иконками изменяются в размере, так всю форму аж передергивает. Потому что от размера иконки зависит размер кнопки. Но как временное решение сойдетНазвание: Re: Автоматическое изменение размера иконки кнопки Отправлено: Racheengel от Октябрь 19, 2015, 02:33 Переопределить QPushButton и в него засунуть корректировку размера иконок. +1 Название: Re: Автоматическое изменение размера иконки кнопки Отправлено: kolts от Октябрь 19, 2015, 10:45 void PushButton::resizeEvent(QResizeEvent *e)
{ setIconSize(icon().actualSize(QSize( e->size().width() - 10, e->size().height() - 10))); QPushButton::resizeEvent(e); } Переопределил класс QPushButton, переопределил resizeEvent. Оставлю так но поведение примерно такое же. |