цвета в элементах QComboBox вместо QIcons - PullRequest
0 голосов
/ 10 июня 2018

Я использую pyqt и хотел отображать разные цвета с каждым элементом комбинированного списка.

мы можем сделать это для изображений:

combo.addItem(QIcon("path/to/image.png"), "Item 1")

но как это сделать для цветов?

1 Ответ

0 голосов
/ 10 июня 2018

Решение состоит в том, чтобы создать иконку, используя QColor в качестве основы, как показано ниже.

import sys

from PyQt5.QtWidgets import QApplication, QComboBox
from PyQt5.QtGui import QColor, QIcon, QPixmap


def get_icon_from_color(color):
    pixmap = QPixmap(100, 100)
    pixmap.fill(color)
    return QIcon(pixmap)


if __name__ == '__main__':
    app = QApplication(sys.argv)
    w = QComboBox()
    for text, color in (("item1", QColor("red")), ("item2", QColor(0xff00ff)), ("item3", QColor(0, 255, 0))):
        w.addItem(get_icon_from_color(color), text)
    w.show()
    sys.exit(app.exec_())
...