アルファ透明ウィジェットを作成する必要があります。これは基本的には影付きのナビゲーションバーです。下のウィジェットは影から部分的に見える必要があります。ウィジェットはPNGを読み込んでペイントイベントに描画します。問題は、影がすべて黒であり、アルファ透明でないことです。アルファ透明なQWidgetを作成するには
これは私が現在使用しているコードです:
NavigationBar::NavigationBar(QWidget *parent) : XQWidget(parent) {
backgroundPixmap_ = new QPixmap();
backgroundPixmap_->load(FilePaths::skinFile("NavigationBarBackground.png"), "png");
setAttribute(Qt::WA_NoBackground, true); // This is supposed to remove the background but there's still a (black) background
}
void NavigationBar::paintEvent(QPaintEvent* event) {
QWidget::paintEvent(event);
QPainter painter(this);
int x = 0;
while (x < width()) {
painter.drawPixmap(x, 0, backgroundPixmap_->width(), backgroundPixmap_->height(), *backgroundPixmap_);
x += backgroundPixmap_->width();
}
}
誰もが、私はウィジェットが本当に透明であることを確認するために変更する必要があるか知っていますか?
@Qt Blue Waffle:修正していただきありがとうございます!ちょっとしたメモ:編集時に編集マーカーを残さないでください。それぞれの投稿の編集履歴は、「編集X時間前」(投稿が編集されていることを前提とする)というリンクで表示できます。 – Mat