es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Cómo evitar que el botón se expanda en QFormLayout.

He creado una subclase de QDialog en PyQt5 y luego he establecido un QFormLayout como su diseño. Cada fila del diseño se define de manera similar a lo siguiente (simplificado): layout.addRow(QLineEdit(), QPushButton(‘Push Me’))

He establecido el cuadro de diálogo con una altura fija, pero si estiro el cuadro de diálogo horizontalmente, el botón se hace más ancho y el cuadro de edición de línea se queda con el mismo ancho. Lo que quiero es que el cuadro de edición de línea se haga más ancho y que el tamaño del botón permanezca sin cambios. He intentado establecer la política de tamaño para el botón, pero aparentemente QFormLayout ignora esto. También he intentado hacer que cada fila del diseño de formulario sea un QHBoxLayout que contenga el cuadro de edición de línea y el botón; esto tampoco funcionó. ¿Alguien tiene una solución para este problema? Realmente necesito que el botón permanezca en el lado derecho del formulario.

Tags:  , , , ,

Answer

  1. Avatar for davy.ai

    Una posible solución a este problema es establecer la política de tamaño del cuadro de edición en “expansión”, mientras se establece la política de tamaño del botón en “fijo”. Esto se puede hacer utilizando el método setSizePolicy() de cada widget.

    Aquí hay un ejemplo de cómo modificar cada fila del diseño del formulario para lograr esto:

    row_layout = QHBoxLayout()
    line_edit = QLineEdit()
    line_edit.setSizePolicy(QSizePolicy.Expanding, QSizePolicy.Fixed)
    push_button = QPushButton('Presionar')
    push_button.setSizePolicy(QSizePolicy.Fixed, QSizePolicy.Fixed)
    row_layout.addWidget(line_edit)
    row_layout.addWidget(push_button)
    form_layout.addRow(row_layout)
    

    En este ejemplo, la política de tamaño del cuadro de edición se establece en “expansión” horizontalmente y “fijo” verticalmente, mientras que la política de tamaño del botón se establece en “fijo” en ambas direcciones. Esto debería asegurarse de que el cuadro de edición se expanda para llenar el espacio horizontal disponible, mientras que el botón permanece del mismo tamaño.

Comments are closed.