1

この画像でわかるように、背景が透明ではなく灰色のウィジェットがあります。

グレーゾーン。 白に設定されていますが、まだ灰色に見えます

私はレイアウトを備えたカスタムウィジェットを持っており、これScrollAreaはこのスタイルで内部にあります:

background-color: white;
margin: 5px;  /*so it appears with 5 px around. the scroll bar is separated then*/
padding: 0px;

このスタイルでビューポートが表示するためのジェネリック内QWidget(setWidget):

background: transparent;  // <---- HERE IS THE PROBLEM
margin: 0px;
padding: 0px;

透明でない色を試してみると、うまくいきません。いつも灰色。setAutoFillBackground(true) も試しましたが、うまくいきませんでした。(とにかくスタイルでは機能しません)。

これら 2 つのコンテナーのコードは次のとおりです。

cameraModeParametersPanel_ = new QScrollArea();
(...)
cameraModeParametersPanel_->setHorizontalScrollBarPolicy(Qt::ScrollBarAlwaysOff);
cameraModeParametersPanel_->setVerticalScrollBarPolicy(Qt::ScrollBarAsNeeded);
cameraModeParametersPanel_->setWidgetResizable(true);

mainParametersLayout->addWidget( cameraModeParametersPanel_ );  // the panel


QWidget* paramPanelViewportWidget = new QWidget();
(...)

QVBoxLayout* mainCameraLayout = new QVBoxLayout(paramPanelViewportWidget);
(...)
// and then i add QGroupBoxes with titles.
4

1 に答える 1

1

この質問に対する答えは、このコード行を追加することです。

paramPanelViewportWidget->setAttribute(Qt::WA_TranslucentBackground, true);

まだいくつかの問題があります。透明な背景と色付きの背景に完全に対応するようになりました。ただし、透明は、それを含む白いパネルの背後にあるもの (灰色、青色の背景) を示しています。

しかし、このプロパティは WindowsXP では機能しません。これは、少なくとも、私が使用しているバージョンである QT 4.7 の既知のバグです。

その最後の問題(元の問題に追加されたもの)を解決したら、回答として投稿します。

それが役に立てば幸い。

于 2013-01-16T10:12:20.093 に答える