Qt setStyleSheet análisis de código fuente

QWidget :: Principio del código central de SetStyleSheet ():

Esta función se ejecutará durante la ejecución:

void QWidgetPrivate :: setStyle_helper ( QStyle * newStyle , bool propagate )

{

。。。

/ *

Puede ver que encontrará todos los widgets y realizará el dibujo.

* /

    if ( propagar ) {

        // Copiamos la lista porque el orden puede ser modificado

        const QObjectList childrenList = children ;

        for ( int i = 0; i < childrenList . size (); ++ i ) {

            QWidget * c = qobject_cast < QWidget *> ( childrenList . En ( i ));

            si ( c )

                c -> d_func () -> inheritStyle ();

        }

}

。。。

}

Generalmente creemos que sí, pero algunos widgets que parecen no ser widgets también tendrán efecto, como por ejemplo:

      QListView :: itemr {

          color de fondo: rgb (110,110,110);

color: rgb (233,233,233);

      }

El elemento de QListView es QAbstractWidgetItem, no es un widget, pero puede realizar dibujos, porque el código central subyacente de QListView, su elemento de interfaz es QAbstractWidgetItem, de hecho no es un elemento, pero la capa inferior de QListView debería ser similar. Se utiliza para asociarse con QAbstractWidgetItem y mostrar los datos del elemento. Por lo tanto, el elemento establecido en la hoja de estilo no es un QAbstractWidgetItem que se ve similar, pero un widget correspondiente en la parte inferior de la asociación es este elemento.

Publicado 85 artículos originales · elogiado 18 · 120,000 visitas

Supongo que te gusta

Origin blog.csdn.net/a1317338022/article/details/105281203
Recomendado
Clasificación