Establecer border-radius para QSpinBox/QComboBox tiene un efecto secundario inesperado en los controles arriba/abajo

Estoy usando PyQt4 para crear una interfaz con varias entradas QLineEdit y QSpinBox. Quiero darles a ambos una apariencia redondeada agradable, pero esto genera un problema en el caso de los spinboxes.

Los bits relevantes de la hoja de estilo se ven así:

QDialog {
    background-color: #444;
}

QLabel, QLineEdit, {
    background-color: #eee;
    border-radius: 8px;
}

QSpinBox{
    background-color: #eee;
}

Dando una interfaz que se ve así:

Captura de pantalla de la interfaz de usuario

Ahora, cuando incluyo un border-radius (incluso con un valor de 0) para QSpinBox y QComboBox, obtengo esto

Captura de pantalla de la interfaz de usuario con fallas

Observe cómo las flechas cambiaron del tema de Windows XP/vista a un aspecto simple predeterminado.

¿Por qué sucede esto y cómo puedo prevenirlo?

Lo que me gustaría ver es que las formas principales del cuadro giratorio y el cuadro combinado tengan la forma de las ediciones de línea. No he intentado configurar imágenes de flecha personalizadas, ya que preferiría usar los valores predeterminados nativos. ¿O es realmente mi mejor/única opción? ¡Gracias!

preguntado el 22 de mayo de 12 a las 14:05

JNK va a estar MUY enojado contigo -

Ah, cierto :D Bueno, supongo que Arthur C. Clarke tendría más razones para estar enojado con los dos. -

¡Será mejor que lo cambies rápido antes de que se entere! -

2 Respuestas

Pasar por esto Estilo Q, donde tienes la idea de cambiar el estilo de tu widget a QWindowsStyle, QMacEstilo or QMotifStyle. Y también si configura la hoja de estilo de un widget en particular, solo los valores set por usted será actualizado, resto otras propiedades son inherited de su parent artilugio. así que intenta especificar widget style también como dije anteriormente mientras configuraba stylesheet.

contestado el 22 de mayo de 12 a las 19:05

Gracias por la respuesta y los enlaces. Por ahora decidí hacer mis propias imágenes de todos modos, pero esto podría ayudar en el futuro. - Junuxx

Cuando cambia la hoja de estilo del widget, se le da estilo con QCssStyle. Retrocede todos los subcontroles sin estilo al estilo predeterminado. Debe diseñar todo el control para obtener el aspecto deseado. no se mezclará

contestado el 22 de mayo de 12 a las 19:05

Gracias. Pero, ¿por qué el color de fondo no revirtió los botones a sus valores predeterminados entonces? - Junuxx

Porque el color de fondo no cambia de forma - kamil klimek

No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas or haz tu propia pregunta.