1

QTアプリケーションにアイコン画像の形をしたボタンが欲しいのですが。アルファチャンネルを使って使用画像(.png)からマスクを取得してボタンマスクを設定しようとしています。

関心のあるコード行は次のとおりです。

QPushButton button();
QPixmap pixmap("image_path.png");
QIcon icon(pixmap);
button.setIcon(icon);
button.setMask(pixmap.createMaskFromColor(Qt::transparent,Qt::MaskInColor));

その結果、ボタンが消えます!

いくつかのテストを行うことで、マスクが正しく作成されていると確信していますが、間違いはどこにありますか?

4

1 に答える 1

4


このようなアルファ付きの.pngを使用している場合:
透明なpng
次のようにその形状をマスクとして設定できます。

QPushButton button;
button.resize(50,50);
button.show();

QPixmap mask("D:/shape.png");
button.setMask(mask.mask());

次のような結果が得られます:
結果形状ボタン

于 2012-08-09T08:42:44.017 に答える