13

QWidget の背景を変更するメニューを作成する必要があります。選択した色を表す QIcon を、Q​​Menu を設定する QActions に配置したいと思います。Photoshop をポップアウトして手動でアイコンをペイントする必要はありません。特定の色で塗りつぶされた単純なアイコンをプログラムすることは可能ですか? このようにして、必要に応じて任意の数の QAction を使用でき、Photoshop で大量のアイコンを作成する必要がなくなります。\

4

2 に答える 2

19

QPixmapからQIconを構築できます。QPixmapは、指定されたサイズで作成し、「fill」を使用して色で塗りつぶすことができます。

たとえば、赤い100x100アイコンを作成するには:

QPixmap pixmap(100,100);
pixmap.fill(QColor("red"));
QIcon redIcon(pixmap);
于 2012-11-12T20:15:49.690 に答える
10

色をアイコンから他の色に変更する方法を見つけました。したがって、アイコンの画像は、ピックスマップとそのマスキング機能を使用して別の色 (「赤」など) に変換できる 1 つの単色 (ここでは「黒」) で構成する必要があります。

pixmap = QPixmap(filename)
mask = pixmap.createMaskFromColor(QColor('black'), Qt.MaskOutColor)
pixmap.fill((QColor('red')))
pixmap.setMask(mask)

btNew = QToolButton()
btNew.setIcon(QIcon(pixmap))
于 2016-07-14T08:43:42.130 に答える