Мне нужно создать меню, которое изменяет фон QWidget. Я хотел бы разместить QIcon, который представляет выбранный цвет в QActions, который заполняет QMenu. Я бы не хотел выскочить из Photoshop и нарисовать значки вручную. Можно ли запрограммировать простой значок, заполненный определенным цветом? Таким образом, я могу иметь произвольное количество QActions, если это необходимо, и мне не придется создавать целую кучу значков в Photoshop. \Простые заливки цвета QIcons в Qt
ответ
Вы можете построить QIcon из QPixmap. QPixmap может быть сконструирован с заданным размером, а затем заполнен цветом с использованием «fill».
Например, чтобы создать красный 100x100 значок:
QPixmap pixmap(100,100);
pixmap.fill(QColor("red"));
QIcon redIcon(pixmap);
Просто понял, как изменить цвет от значка до любого другого цвета. Таким образом, изображение значка должно состоять из одного сплошного цвета (здесь: «черный»), которые могут быть преобразована с помощью растрового изображения и его маскирующей способности в другой цвет (например, «красный»):
pixmap = QPixmap(filename)
mask = pixmap.createMaskFromColor(QColor('black'), Qt.MaskOutColor)
pixmap.fill((QColor('red')))
pixmap.setMask(mask)
btNew = QToolButton()
btNew.setIcon(QIcon(pixmap))
Прохладный, хотя createMaskFromColor (QColor ('transparent'), Qt.MaskInColor) работает лучше для меня – falkb
Тема помечена C++, но это не допустимый код C++. Хотелось бы отредактировать его, но рецензенты отклонили его по причинам, которые я не знаю. Кроме того, решение работало для меня после переноса его на C++. – bns
Я думаю, что вы правы - я не понимал, что вопрос связан с C++, но я также думаю, что это не значит, что изменить уже существующий ответ так много ... И я не знаю, является ли ваш код стабильный - поэтому я не могу принять его для себя. Я думаю, вы должны ответить сами! Спасибо за подсказку. – Henhuy
- 1. Рафаэль карта цвета заливки
- 2. Изменение цвета заливки в SVG
- 3. Как определить цвета заливки в гистограмме ggplot?
- 4. как решить заливки пути цвета
- 5. Reportlab - Круговая диаграмма цвета заливки
- 6. WPF Изменение цвета заливки эллипса
- 7. Использование вопроса цвета заливки CAShapeLayer
- 8. Как использовать залитые цвета заливки в javaFX?
- 9. изменение цвета заливки бара в SSRS диаграмма
- 10. Ggplot2: изменение цвета заливки в каждом фасете
- 11. Нарисуйте круг без цвета заливки в cocos2d?
- 12. Установить цвета заливки по умолчанию и цвета штриховки в Raphael.js
- 13. Загрузка QIcons с использованием pkgutil
- 14. Легенда: изменение цвета заливки R участка
- 15. Анимация цвета прямоугольника при изменении свойства заливки
- 16. 4-функции заливки без прохождения начального цвета
- 17. WPF flash при изменении цвета заливки/фона
- 18. оверлейная гистограмма по определенному порядку цвета заливки
- 19. Уникальные цвета заливки для круговой диаграммы dojox
- 20. Настройка цвета заливки для UIBezierPath bezierPathWithRect
- 21. JavaFX Установка цвета заливки цвета из массива цветов
- 22. Автоматически цвета заливки после времени задержки -
- 23. R ggplot geom_tile без цвета заливки
- 24. pygame crashes при использовании метода заливки (цвета)
- 25. Нарисуйте круг с половиной цвета заливки
- 26. Как оживить изменение цвета заливки на UIBezierPath?
- 27. PyLab - изменение цвета текста и цвета заливки текста текстового поля
- 28. Простые клавиатурные сенсорные экраны в Qt
- 29. Только простые указатели, используемые в Qt API
- 30. Нет заливки цвета в ячейку в другом файле
Это заполнит только прозрачные части изображения, правильно? Я имею в виду, можно ли это использовать для заполнения прозрачных частей QIcon цветом? – SexyBeast
Боюсь, я не понимаю. Этот код создает совершенно новый значок, который является сплошным красным квадратом. – cgmb