通过 PyQT 中的 QPainter 构建 QIcon

发布于 2024-12-14 13:10:09 字数 128 浏览 0 评论 0原文

我知道这是可能的,但我一生都无法获得正确的代码来工作。我想要的非常简单:一个单色矩形,大小为 20x20(大概)通过 QPainter 构建。由此,我希望使用绘制的矩形作为 QIcon 在 QComboBox 中使用。有什么想法吗?提前致谢。

I know this is possible, but I cannot for the life of me get the proper code to work. What I want is very simple: a monochromatic rectangle, size, say 20x20 constructed (presumably) through a QPainter. From that I wish to use the painted rectangle as a QIcon for use in a QComboBox. Any ideas? Thanks in advance.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

绝影如岚 2024-12-21 13:10:09

看起来你只需要 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_())

Looks like you just need QPixmap.fill for this:

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_())
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文