を削除します。どうやってやるの?私は下記の背景が透けて見えることができるように、私のQListViewの背景を削除するQListViewの背景
私はsetAttribute(Qt::WA_NoSystemBackground)
とsetAttribute(Qt::WA_NoBackground)
を試してみましたが、それは何も変更しませんでした。また、私はpaintEvent()
を上書きすることはできません。そうでなければ、アイテムを描画しません。
を削除します。どうやってやるの?私は下記の背景が透けて見えることができるように、私のQListViewの背景を削除するQListViewの背景
私はsetAttribute(Qt::WA_NoSystemBackground)
とsetAttribute(Qt::WA_NoBackground)
を試してみましたが、それは何も変更しませんでした。また、私はpaintEvent()
を上書きすることはできません。そうでなければ、アイテムを描画しません。
はQListViewの基本クラスですQScrollAreaは、ビューポートと呼ばれる「別の」のウィジェットが含まれていることを忘れないでください。これは、viewport()メソッドを介してアクセスできます。
viewport()->setAutoFillBackground(false);
およびその他の設定(すなわち、親ウィジェットの設定)に応じて、あなたは背景が表示されるはずです。あなたは、単純に呼び出すことができ、透明性を達成するために
。
答えはあなたのQListView
がトップレベルウィジェットであるかどうかに依存します。 QWidget docs on transparencyについて詳しく説明します。トップレベルのウィジェットのために、それはのような単純なものがあります。トップレベルではありませんウィジェットの
view->setWindowOpacity(50);
、あなたはアルファチャンネルを1に背景を設定したい:
QPalette palette = view->palette();
palette.setColor(QPalette::Background, Qt::transparent);
view->setPalette(palette);
ますまた、スタイルシートで同じことを行うことができる必要があります:
view->setStyleSheet("background-color: transparent;");
あなたは、ウィジェットが自動的にバックグラウンドで記入されないようにfalseにautoFillBackgroundを設定する必要があるかもしれません。
これらの提案のおかげで、私はそれらすべてを試してみました。そうしようとしたした後に 'のsetAttribute(Qtの:: WA_NoSystemBackground)'、 'のsetAttribute(Qtの:: WA_NoBackground)'、私は ''しようとした表示 - > setPalette(パレット) '、' setAutoFillBackground(偽) '、最後の[表示] - > setStyleSheet( "background-color:transparent;") 'はうまくいった! –