2012-07-16 115 views
5

Estoy usando Qt Creator. En mi GUI, uso un widget de pestaña. Este widget debe tener el mismo color de fondo gris que la ventana principal (imagen A). Me logrado esto mediante la edición de la hoja de estilo en Qt Designer con:¿Cómo establecer el color de fondo de un widget de pestañas en Qt Creator?

enter code herebackground-colour: rgb(240, 240, 240); 

Pero ahora tengo dos nuevos problemas que no puedo resolver:

  • Los botones (-> enviar) no están redondeados nunca más.
  • El color de fondo de los cuadros de edición también ha cambiado a gris.

Befor He cambiado la hoja de estilo de la interfaz gráfica de usuario se parecía en imagen B.

También probé

QPalette pal = m_pUi->tabWidget->palette(); 
pal.setColor(m_pUi->tabWidget->backgroundRole(), Qt::blue); 
m_pUi->tabWidget->setPalette(pal); 

pero esto sólo cambia el color detrás de las pestañas, no todo el color de la toda la "pestaña-ventana-superficie".

¿Tengo que hacer descripciones de estilo adicionales o hay una solución más simple?

Picture A - with Style Sheet

Cuadro A - con hoja de estilos

Picture B - without Style Sheet

Imagen B - sin hoja de estilos

+0

Descubrí que en XP el fondo es siempre gris, pero en Windows 7 es blanco. –

+0

¿Ha intentado jugar con el color del botón en la paleta? Es posible que la barra de pestañas lo use para sus pestañas. En la imagen sin una hoja de estilo, las pestañas y el botón se ven muy similares. –

Respuesta

0

Las "cosas" que desea tener acceso son llamados QTabBars. Teniendo esto en mente se puede escribir una hoja de estilo como esto:

QTabBar::tab 
{ 
    background: #48555E; 
    color: white; 
    border-color: #48555E; 
} 

QTabBar::tab:selected, 
QTabBar::tab:hover 
{ 
    border-top-color: #1D2A32; 
    border-color: #40494E; 
    color: black; 
    background: qlineargradient(x1: 0, y1: 0, x2: 0, y2: 1, stop: 0 #C1D8E8, stop: 1 #F0F5F8); 
} 

También usted puede encontrar this question y esto official documentation perspicaz.

4

que tenían el mismo problema y he descubierto que es necesario establecer este atributo para cada una de las pestañas:

ui->tab->setAutoFillBackground(true); 

No estoy seguro, pero creo que también es necesario conjunto de atributos que a el QTabWidget como tal.

Espero que esta ayuda.

+1

Sí, probé esto y funcionó, así de simple, no hay necesidad de meterse con las hojas de estilo si todo lo que desea es el color de fondo de la ventana. También puedes configurar esto en QtDesigner, que es lo que hice. En el Inspector de Objetos, cada pestaña es un QWidget en el QTabWidget; revisa la propiedad setAutoFillBackground para cada uno y listo. – U62

Cuestiones relacionadas