QFrame を使用してラウンド コンテキスト メニューを作成しています。角を丸くするために、Qtスタイルシートを使用しました。ここに私のCSSがあります
this->setStyleSheet("QFrame#ShareContextMenu{background-color:rgb(255,255,255);
border-width:1px;
border-color :rgb(0,0,0);
border-radius:10px;
border-style:solid;}
QPushButton{background-color:rgba(255,255,255,0);}
QPushButton::hover{background-color:rgba(125,125,125,50); border-radius:5px;}");
この画像の赤い丸でマークされた白い背景を削除するにはどうすればよいですか?.
編集:
QWidget::setMask() を使用したソリューションを次に示します。コンストラクター内に次のコードを追加します
QPixmap px(this->size()); //Create pixmap with the same size of current widget
px.fill(Qt::transparent); //Fill transparent
QPainter p(&px);
QBrush brush;
brush.setStyle(Qt::SolidPattern); //For fill
p.setBrush(brush);
p.drawRoundedRect(this->rect(), 15.0, 15.0); //Draw filled rounded rectangle on pixmap
this->setMask(px.mask()); //The the mask for current widget.