2012-05-18 22 views
8

Situación:
Estoy trabajando en una aplicación de Qt4 construido de esta manera (en los widgets de padres de casos importa en este número):QWidget.setContentsMargins() parece ser ineficaz: ¿por qué?

QApplication 
    |_ QMainwindow 
     |_ QScrollArea (central widget) 
       |_ QFrame (child of scroll area) 
        |_ QFrame 
        |  |_ QLabel 
        |   |_ QPixmap 
        |_ QFrame 
        |  |_ QLabel 
        |   |_ QPixmap 
        |_ QFrame 
          |_ ect... 

Objetivo:
Yo quiero que haya ningún margen entre los sub-QFrames y sus QLabels e igualmente entre QLabels y su QPixmap.

Método:
he solicitado a reducir los márgenes de la sub-QFrame con QFrame.setContentsMargins (0, 0, 0, 0) y con QBoxLayout.setSpacing de su trazado (0). El margen cero entre QLabel y su QPixmap parece ocurrir naturalmente.

Problema:
A pesar de todo esto, los márgenes dentro de QFrames persisten en aparecer: una situación que he podido probar mediante la aplicación de una hoja de estilo a los distintos widgets.

¿Qué puedo hacer?

Respuesta

10

Answer provided on Qt Forum: contenido

Los márgenes debe fijarse tanto en el widget y su disposición . Por lo tanto:

QWidget *w = new QWidget(); 
w->setContentsMargins(0, 0, 0, 0); 
w->layout()->setContentsMargins(0, 0, 0, 0); 
+3

De hecho, los setContentsMargins tiene que ser ejecutado en la disposición, y si no funciona, entonces un parámetro opcional es establecer el espaciado a 0 -> setSpacing (0) para el diseño. – darkgaze

+0

setContentMargins no funciona para mí. ¿Alguna ayuda? – abhiarora

Cuestiones relacionadas