我需要創建一個透明的透明控件,它基本上是一個帶有陰影的導航欄,下面的小部件需要通過陰影部分可見。小部件加載一個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藍色華夫餅:感謝您的修復!請注意:編輯時請不要留下編輯標記。您可以通過標題爲「編輯X時間前」的鏈接查看每篇文章的編輯歷史記錄(假設文章已被編輯)。 – Mat