Russian Qt Forum

Qt => 2D и 3D графика => Тема начата: kambala от Январь 26, 2010, 03:19



Название: создать иконки заданых цветов
Отправлено: kambala от Январь 26, 2010, 03:19
Здравствуйте. У меня такая проблема: не получается создать иконки для QAction'ов по заданному массиву цветов.
Пробовал следующим образом:
Код:
// пример для одной иконки
QColor color(Qt::red);
QIcon icon;
QPainter p;
p.setBrush(QBrush(color));
icon.paint(&p, 0, 0, 24, 24);
QAction *a = new QAction(icon, "red");
Наверное нужен другой подход.


Название: Re: создать иконки заданых цветов
Отправлено: IGHOR от Январь 26, 2010, 03:53
А так?
Код:
QPixmap pix(24,24);
pix.fill(Qt::red);
QAction *a = new QAction(QIcon(pix), "red",this);

PS: QPainter корректно использовать так:
Код:
QColor color(Qt::red);
QIcon icon;
QPainter p(&icon);
p.setBrush(QBrush(color));
p.drawRect(0,0,24,24);


Название: Re: создать иконки заданых цветов
Отправлено: kambala от Январь 26, 2010, 09:43
большое спасибо, первый вариант помог!
а вот второй не компилируется (qt 4.6.0):
Цитировать
error C2664: QPainter::QPainter(QPaintDevice *): невозможно преобразовать параметр 1 из 'QIcon *' в 'QPaintDevice *'


Название: Re: создать иконки заданых цветов
Отправлено: BRE от Январь 26, 2010, 09:46
Все правильно, на QIcon рисовать нельзя (он не является наследником QPaintDevice), это скорее хранилище картинок.


Название: Re: создать иконки заданых цветов
Отправлено: IGHOR от Январь 26, 2010, 18:38
Все правильно, на QIcon рисовать нельзя (он не является наследником QPaintDevice), это скорее хранилище картинок.
да, точно