example c++ qt layout resize qmainwindow

c++ - example - qpushbutton qt



Haga que QMainWindow solo se pueda redimensionar horizontalmente, es decir, que el ancho sea redimensionable, pero la altura sea fija (3)

Sí tu puedes. Como QMainWindow hereda de QWidget, use la configuración de la política de tamaño de QWidget para permitir solo el cambio de tamaño en la dirección horizontal.

Si trabaja en Qt Designer, establezca la política de tamaño vertical para ser reparada, y la altura mínima sea la altura deseada. En codigo:

QMainWindow *mainWindow = new QMainWindow(); mainWindow->setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Fixed);

Tenga cuidado al usar un tamaño fijo absoluto, ya que los controles pueden necesitar crecer de forma vertical (por ejemplo, el usuario establece una fuente de PPP alta en su escritorio).

¿Puedo hacer un QMainWindow con un tamaño de diseño de cuadrícula solo horizontalmente pero no verticalmente?

Quiero que su tamaño vertical sea el mínimo necesario para mantener todos los botones / ediciones de línea.


Vi otra manera en uno de los ejemplos en un libro llamado "Programación de la GUI de C ++ con Qt 4". Lo hicieron con

setFixedHeight(sizeHint().height());


el código a continuación funciona bien

setFixedHeight(sizeHint().height());

pero codifique debajo

QMainWindow *mainWindow = new QMainWindow(); mainWindow->setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Fixed);

no funciona porque el parámetro incorrecto se pasa a la función setSizePolicy . Esta función tiene dos formas, una de las cuales requiere QSizePolicy::Policy y la otra requiere QSizePolicy pero QSizePolicy::Expanding no es una QSizePolicy ni una QSizePolicy::Policy .