Russian Qt Forum
Ноябрь 24, 2024, 21:53 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1]   Вниз
  Печать  
Автор Тема: создать иконки заданых цветов  (Прочитано 5006 раз)
kambala
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 4747



Просмотр профиля WWW
« : Январь 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");
Наверное нужен другой подход.
Записан

Изучением C++ вымощена дорога в Qt.

UTF-8 has been around since 1993 and Unicode 2.0 since 1996; if you have created any 8-bit character content since 1996 in anything other than UTF-8, then I hate you. © Matt Gallagher
IGHOR
Крякер
****
Offline Offline

Сообщений: 390



Просмотр профиля WWW
« Ответ #1 : Январь 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);
Записан
kambala
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 4747



Просмотр профиля WWW
« Ответ #2 : Январь 26, 2010, 09:43 »

большое спасибо, первый вариант помог!
а вот второй не компилируется (qt 4.6.0):
Цитировать
error C2664: QPainter::QPainter(QPaintDevice *): невозможно преобразовать параметр 1 из 'QIcon *' в 'QPaintDevice *'
Записан

Изучением C++ вымощена дорога в Qt.

UTF-8 has been around since 1993 and Unicode 2.0 since 1996; if you have created any 8-bit character content since 1996 in anything other than UTF-8, then I hate you. © Matt Gallagher
BRE
Гость
« Ответ #3 : Январь 26, 2010, 09:46 »

Все правильно, на QIcon рисовать нельзя (он не является наследником QPaintDevice), это скорее хранилище картинок.
Записан
IGHOR
Крякер
****
Offline Offline

Сообщений: 390



Просмотр профиля WWW
« Ответ #4 : Январь 26, 2010, 18:38 »

Все правильно, на QIcon рисовать нельзя (он не является наследником QPaintDevice), это скорее хранилище картинок.
да, точно
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.048 секунд. Запросов: 23.