2011-04-07 10 views

Respuesta

10

No estoy muy seguro de lo que está preguntando aquí. Todo está en el docs.

QSplitter cambia el tamaño de sus hijos de forma predeterminada de forma predeterminada. Si desea preferiría tener QSplitter cambiar el tamaño de las niños sólo al final de una operación de cambio de tamaño , llame setOpaqueResize (falso)

Es decir, si se establece setOpaqueResize(false) en su divisor, iniciar la aplicación y tratar de tirar del divisor cambiar el tamaño de los widgets que contiene no cambiará el tamaño de los widgets hasta que sueltes el divisor. Por otro lado, si está configurado en true, intentará cambiar el tamaño de los widgets mientras arrastra el controlador del divisor.

Puede ser útil desactivar esta característica si sus widgets personalizados toman mucho tiempo para dibujar, por ejemplo, ya que haría el cambio de tamaño bastante lento.

Pero para responder a su pregunta, la propiedad opaqueResize indica si el cambio de tamaño es opaco o no, es decir, si cambiará el tamaño de los widgets mientras arrastra el divisor o no.


Ejemplo:

Aquí es un ejemplo de PyQt puede probar (tuve ejemplo por ahí en Python, pero debería funcionar igual en C++):

from PyQt4 import QtGui, QtCore 

class Example(QtGui.QWidget): 
    def __init__(self, *args, **kwargs): 
     super(Example, self).__init__(*args, **kwargs) 
     top = QtGui.QLabel('test', self) 
     bottom = QtGui.QPushButton('test', self) 
     splitter = QtGui.QSplitter(QtCore.Qt.Vertical) 
     # Try changing from False to True 
     splitter.setOpaqueResize(False) 
     splitter.addWidget(top) 
     splitter.addWidget(bottom) 
     hbox = QtGui.QHBoxLayout(self) 
     hbox.addWidget(splitter) 
     self.setLayout(hbox) 
     self.setGeometry(250, 200, 350, 250) 

def main(): 
    app = QtGui.QApplication([]) 
    ex = Example() 
    ex.show() 
    app.exec_() 

if __name__ == '__main__': 
    main() 

Esperanza esto hace las cosas un poco más claras.

+0

Buena explicación. En otros marcos, se puede llamar cambio de tamaño en vivo. –