QComboBox 项目中的颜色代替 QIcons
colors in QComboBox items in place of QIcons
我正在使用 pyqt 并希望为组合框的每个项目显示不同的颜色。
我们可以为图片做:
combo.addItem(QIcon("path/to/image.png"), "Item 1")
但是颜色如何处理?
解决方法是使用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_())
我正在使用 pyqt 并希望为组合框的每个项目显示不同的颜色。
我们可以为图片做:
combo.addItem(QIcon("path/to/image.png"), "Item 1")
但是颜色如何处理?
解决方法是使用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_())