Построение QIcon с помощью QPainter в PyQt

#python #icons #pyqt #pyqt4

#python #Значки #pyqt #pyqt4

Вопрос:

Я знаю, что это возможно, но я ни за что на свете не смогу заставить правильный код работать. То, что я хочу, очень просто: монохроматический прямоугольник размером, скажем, 20×20, построенный (предположительно) с помощью QPainter. Исходя из этого, я хочу использовать нарисованный прямоугольник в качестве QIcon для использования в QComboBox. Есть идеи? Заранее спасибо.

Ответ №1:

Похоже, вам просто нужно QPixmap.fill для этого:

 from PyQt4 import QtGui

class Window(QtGui.QComboBox):
    def __init__(self):
        QtGui.QComboBox.__init__(self)
        self.resize(200, 25)
        pixmap = QtGui.QPixmap(20, 20)
        for color in 'red orange yellow green blue grey violet'.split():
            pixmap.fill(QtGui.QColor(color))
            self.addItem(QtGui.QIcon(pixmap), color.title())

if __name__ == '__main__':

    import sys
    app = QtGui.QApplication(sys.argv)
    win = Window()
    win.show()
    sys.exit(app.exec_())