3

下の背景が透けて見えるように、QListView の背景を削除したいと考えています。どうやってやるの?

試しsetAttribute(Qt::WA_NoSystemBackground)てみsetAttribute(Qt::WA_NoBackground)ましたが、何も変わりませんでした。またpaintEvent()、それ以外の場合はアイテムを描画しません。

何か案が?

4

2 に答える 2

2

答えは、あなたQListViewがトップレベルのウィジェットかどうかによって異なります。透明度に関するQWidget ドキュメントで詳細に説明されています。トップレベルのウィジェットの場合、次のように単純です。

view->setWindowOpacity(50);

トップ レベルではないウィジェットの場合、背景をアルファ チャネルのあるものに設定します。

QPalette palette = view->palette();
palette.setColor(QPalette::Background, Qt::transparent);
view->setPalette(palette);

スタイル シートでも同じことができるはずです。

view->setStyleSheet("background-color: transparent;");

ウィジェットが背景を自動的に塗りつぶさないように、 autoFillBackgroundを falseに設定する必要がある場合があります。

于 2011-08-09T17:14:43.147 に答える