スタイルシートを使用してインデックス付きの QTabBar タブの背景を変更する

StackOverflow https://stackoverflow.com/questions/2298166

  •  21-09-2019
  •  | 
  •  

質問

Qt スタイルシートを使用して、4 つ以上のタブがある QTabBar のタブごとに異なる背景色を設定することはできますか?

私の Qt アプリケーションにはメニュー バーの下に 6 つのタブがあります。スタイルシートを使用して背景色を6色に変更したいと考えています。

2 つの問題が私の前に立ちはだかっているようです。

  • 純粋なスタイルシート構文を使用してスタイルを設定できるのは、「最初」、「中間」、「最後」のタブのみです (そのため、「4 つ以上」のタブと表現しています)。

  • 個々のタブは、アクセスできる QTabBar の子ウィジェットではないと思います。そのアイデアは、スタイルシートで参照できるプロパティを各子タブに添付できるということです。

例えば:

// Stylesheet
QTabBar::tab[index="3"] {
   background: blue;
}

// Code
QTabBar* bar = new QTabBar;
int index = bar->addTab("Tab 1");
QWidget* tab1; //= ????
tab1->setProperty("index", index);

助けていただければ幸いです。ありがとう。

役に立ちましたか?

解決

個々のタブは、構造体ではなくオブジェクトです。これらの構造体は、その後、塗装に使用されています。多くのための Qtのソースを参照してください。詳細。

私はこれで実験を持っていたし、あなたが示されているように私は、直接のインデックスにアクセスする方法を見つけることができません。あなたの参考のために、私は、テキスト、ツールチップなどのプロパティを使用してみましたwhatsThisが、残念ながら、スタイルシートからそれらのいずれかにアクセスすることができませんでした。

私は、私はあなたがサブクラス化とペイントイベントを自分で変更することなく可能である何をしたいのかとは思わないんです。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top