2011-08-09 22 views

答えて

6

はQListViewの基本クラスですQScrollAreaは、ビューポートと呼ばれる「別の」のウィジェットが含まれていることを忘れないでください。これは、viewport()メソッドを介してアクセスできます。

viewport()->setAutoFillBackground(false);

およびその他の設定(すなわち、親ウィジェットの設定)に応じて、あなたは背景が表示されるはずです。あなたは、単純に呼び出すことができ、透明性を達成するために

1

答えはあなたの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を設定する必要があるかもしれません。

+0

これらの提案のおかげで、私はそれらすべてを試してみました。そうしようとしたした後に 'のsetAttribute(Qtの:: WA_NoSystemBackground)'、 'のsetAttribute(Qtの:: WA_NoBackground)'、私は ''しようとした表示 - > setPalette(パレット) '、' setAutoFillBackground(偽) '、最後の[表示] - > setStyleSheet( "background-color:transparent;") 'はうまくいった! –

関連する問題