3

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);

どんな助けでも大歓迎です。ありがとう。

4

1 に答える 1

5

個々のタブは、オブジェクトではなく構造体です。これらの構造体は、ペイントで使用されます。詳細については、Qt のソースを参照してください。

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

残念ながら、ペイント イベントを自分でサブクラス化したり変更したりしない限り、あなたがやりたいことは不可能だと思います。

于 2010-07-23T10:53:10.020 に答える