3

タブ、テキスト領域など、非常に基本的な GUI を作成したいと考えています。

しかし、タブに色を付けて、MAC、Windows、および Linux で常に同じように表示したいと考えています。

だから、私はスタイルシートを使用しようとしました:

QTabWidget::pane
{
    border-top: 2px solid #1B1B1B;
    background-color: #262626;
}

QTabWidget::tab-bar
{
    left: 5px;
    alignment: left;
    background: #3E3E3E;
}

QTabBar::tab
{
    background: transparent;
    color: #757575;
    padding: 15px 5px 15px 5px;
}

QTabBar::tab:hover
{
    text-decoration: underline;
}

QTabBar::tab:selected
{
    color: #DEF600;
    background: qlineargradient( x1: 0, y1: 0, x2: 0, y2: 1, stop: 0 #262626, stop: 1.0 #3D3D3D );
}

しかし、タブがよく見える場合でも、問題があります: タブ ペインはまだ透明です...

以下を追加することで、背景色を強制できます。

QWidget
{
    background-color: #262626;
}

しかし、ご存知のように、これはすべてのウィジェットの背景色を変更します。QPlainTextEdit でさえ、背景を白にしたいのです。さらに面倒なことに、これは OS のスキンをリセットし、醜いスクロールバーを表示します (私は本当にそのままにしておきたいのです)。

すべてのコンポーネントのスキンを変更せずに、タブ ペインの背景を変更する方法はありますか?

4

6 に答える 6

3

これを試して。

QTabWidget::pane {
    background: red;
}

詳細はこちらをご覧ください。そしてもう一つコメント。QObject::objectName() をスタイル シートの ID セレクターとして使用できます。例えば、

QTabWidget#myTab { ... }

お役に立てれば。

于 2012-10-21T00:33:38.903 に答える
1

次の方法で簡単に実行できます。

* {background: green;}

このスタイルは、このウィジェットとそのすべての子の背景を設定するため、重要なことを 1 つ知っておく必要があります。QTabWidgetあなたが実際にあると思う領域は、 のQWidget設定されています。スタイルに追加することで、どこにいて、どこに子供がいるのかを簡単に確認できますQTabWidgetQTabWidget

QTabWidget::pane {background: green; padding: 10px;}

緑色の領域は でQTabWidget、内部はすべてQTabWidgets子によって重なっています (関数QWidgetによって追加されたaddTab()もの)。

于 2016-07-04T23:21:02.353 に答える
0

スタイルを追加

 "background-color:rgb(255,255,255)"    

各タブへ。

于 2012-10-22T03:09:01.193 に答える
0

これを参照してください: http://doc.qt.digia.com/qt/stylesheet-syntax.html

セレクタ タイプの下の ID セレクタを参照してください。特定のオブジェクト名にのみ特定のスタイルを適用するように指示できます。したがって、tabWidget に付けた名前は何でも使用できます。

于 2012-11-01T10:49:47.087 に答える