QWidget :: SetStyleSheet()コアコードの原則:
この関数は実行中に実行されます:
void QWidgetPrivate :: setStyle_helper (QStyle * newStyle 、ブール 伝播)
{
。。。
/ *
すべてのウィジェットが見つかり、描画が実行されることがわかります
* /
if (伝播){
//順序が変更される可能性があるため、リストをコピーします
const QObjectList childrenList = children ;
以下のために(INT iが0 = I < childrenList 。サイズ(); ++ I ){
QWidgetの* C = qobject_cast < QWidgetの*>(childrenList 。で(I ))。
もし(c )
c- > d_func ()-> inheritStyle ();
}
}
。。。
}
私たちは一般的にそう思っていますが、ウィジェットではないように見える一部のウィジェットも有効になります。
QListView :: itemr {
背景色:rgb(110,110,110);
色:rgb(233,233,233);
}
QListView の項目はQAbstractWidgetItemであり、ウィジェットではありませんが、描画を実行できます。QListViewの基になるコアコード、そのインターフェース項目は実際にはQAbstractWidgetItemであるため、実際には項目ではありませんが、QListViewの最下層はウィジェットの層に類似しているはずです。これは、QAbstractWidgetItemに関連付けてアイテムのデータを表示するために使用されます。したがって、スタイルシートに設定されたアイテムは、似たようなQAbstractWidgetItemではありませんが、関連付けの下部にある対応するウィジェットはこのアイテムです。