2010-12-15 12 views
20

Me gustaría que los usuarios puedan personalizar el aspecto predeterminado de nuestras aplicaciones simplemente cargando sus PROPIOS Qt Style-sheet files. ¿Cómo logramos eso? ¿Alguien puede darme una ventaja?¿Cómo podría Qt aplicar el estilo desde un archivo Qt Stylesheet externo?

+0

¿Por CSS quiere decir * HTML CSS * archivos o * Qt Stylesheets * ellos mismos? – liaK

+1

Hojas de estilo de Qt ... perdón ... permítanme actualizarlo ... – Owen

Respuesta

26

Supongamos que el usuario tiene su hoja de estilo llamada stylesheet.qss y se encuentra en la carpeta de la aplicación.

Se puede cargar la hoja de estilo al iniciar la aplicación, con el argumento de -stylesheet:

>myapp -stylesheet=stylesheet.qss 

Pero esto requerirá su usuario para saber cómo iniciar una aplicación con argumentos.

Lo que también podría hacer es agregar un cuadro de diálogo de configuración en su aplicación, donde el usuario puede elegir una ruta de hoja de estilo.

A continuación, puede abrir este archivo, cargar el contenido, y lo puso a su aplicación con QApplication::setStyleSheet():

QFile File("stylesheet.qss"); 
File.open(QFile::ReadOnly); 
QString StyleSheet = QLatin1String(File.readAll()); 

qApp->setStyleSheet(StyleSheet); 

Qt está proporcionando un example online que podría ser útil.

+4

¿podría especificar cómo (si es posible) utilizar varias hojas de estilo? Por ejemplo, necesito usar una hoja de estilo para un diseño específico, y otra para un segundo diseño. Al final, ¿es posible vincular una hoja de estilo a un widget, no a una aplicación? – SKYnine

+0

@SKYnine ¿descubrió cómo hacer esto? (cargar varias hojas de estilo) –

+0

lamentablemente no creo que puedas. Sin embargo, encontré una manera de lidiar con un estilo específico. Simplemente agregue propiedades a su objeto deseado, luego subclasse el estilo en la hoja de estilos (como una clase). Qt revisará toda la hoja de estilo estándar y luego aplicará las anulaciones para elementos específicos que coincidan con el nombre de la propiedad. – SKYnine

3

Usted acaba de establecer la hoja de estilos para toda la aplicación en función de la configuración proporcionada por el cliente.

http://doc.qt.io/qt-5/qapplication.html#styleSheet-prop

También podemos establecer/obtener esta configuración desde cualquier número de lugares, un cuadro de diálogo en la aplicación de propiedades es probablemente el enfoque más natural.

+2

Enlace muerto y respuesta inhábil. –

Cuestiones relacionadas