2015-12-24 7 views
-1

я делаю:Как поставить QImage с серым фоном внутри QIcon?

QIcon(QPixmap::fromImage(img)); 

, а затем положить его в QToolButton с setIcon и setIconSize

Мне нужно, чтобы мой img окружен серым цветом внутри этой иконы - как я могу это реализовать?

так есть: enter image description here

+0

Hello Heather, Можете ли вы поместить изображение того, как вы хотите, чтобы оно выглядело точно.? – PRIME

+0

@PRIME с удовольствием, добавлено к вопросу – Cynede

+0

@Heather вы попробовали 'toolButton-> setStyleSheet (" background-color: rgb (190, 190, 190) ");' и затем установить свою иконку? – Shf

ответ

1

Настройка таблицы стилей должны делать работу за вас ..

int main(int argc, char *argv[]) 
    { 
     QApplication a(argc, argv); 
     QToolButton b; 
     b.setStyleSheet("QToolButton { background-color: grey }"); 
     QImage img("C:\\Users\\Administrator\\Desktop\\Icon.png"); 
     b.setIcon(QPixmap::fromImage(img)); 
     b.show(); 
     a.exec(); 
    } 

Попробуйте это. Вы также можете поиграть с QPalette кнопки, которая также предоставляет вам прекрасный контроль над тем, как вы хотите, чтобы ваши виджеты выглядели.

+0

спасибо, что я использую setIconSize и setMinimumSize, чтобы сделать это так, как хочу – Cynede

+0

Хезер. Это неправильный способ пойти на это. Уменьшение размера значка ниже минимально возможного размера изменит его внешний вид, но это не обязательно правильно выглядит на разных платформах. Он может выглядеть несовместимым в кросс-платформенных приложениях. – PRIME

+0

Это сейчас немного сложно :) Самый простой способ - создать собственный класс, наследующий QToolButton, и переопределить PaintEvent, а затем вручную поместить pixmap значка, где бы вы ни захотели. Таблицы стилей не помогут вам в этом. – PRIME