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.

PyQt añade 9 elementos en el diseño y luego muchos diseños en el cuadro de grupo.

Quiero poner los elementos en una fila en un diseño y muchos diseños estarán en un GroupBox, debe ser así:

Result Interface

Estoy tratando de liberar esto:

formLayout = QFormLayout()

for i in range(50):
    formLayout.addRow(QLabel(i), QPushButton("Start"))

groupBox.setLayout(formLayout)
self.scrollArea.setWidget(groupBox)
self.scrollArea.setWidgetResizable(True)

Resultado del código

Sé que debería hacerlo en un diseño de cuadrícula, porque tengo muchos elementos, pero ¿cómo puedo crear un diseño con diseños que todos tienen 9 elementos?

Simplemente explique cómo debe agruparse, como esto: scrollArea->groupBox->formLayout.addRow(elements). No necesito todo el código, puedo escribirlo yo mismo.

Tags:  , ,

Answer

  1. Avatar for davy.ai

    Para lograr el diseño deseado, puede crear un QGridLayout () y agregar múltiples QFormLayouts a él. Cada QFormLayout tendrá 9 elementos y puede agregarlo al diseño de cuadrícula utilizando las coordenadas que corresponden al “grupo” de elementos deseado. Por ejemplo:

    gridLayout = QGridLayout ()
    
    # cree el primer grupo de 9 elementos usando QFormLayout
    formLayout1 = QFormLayout ()
    for i in range (9):
        formLayout1.addRow (QLabel (str (i)), QPushButton ("Start"))
    
    # agregar el primer grupo a la cuadrícula de diseño en la fila 0, columna 0
    gridLayout.addLayout (formLayout1, 0, 0)
    
    # cree el segundo grupo de 9 elementos
    formLayout2 = QFormLayout ()
    for i in range (9):
        formLayout2.addRow (QLabel (str (i + 9)), QPushButton ("Start"))
    
    # agregar el segundo grupo a la cuadrícula de diseño en la fila 0, columna 1
    gridLayout.addLayout (formLayout2, 0, 1)
    
    # continúe creando y agregando grupos según sea necesario
    
    # agregar el cuadro del grupo final al área de desplazamiento
    groupBox = QGroupBox ("Título")
    groupBox.setLayout (gridLayout)
    self.scrollArea.setWidget (groupBox)
    self.scrollArea.setWidgetResizable (True)
    

    Esto creará un diseño de cuadrícula con múltiples QFormLayouts, cada uno conteniendo 9 elementos, agrupados juntos dentro de un QGroupBox. El resultado debería verse similar a la imagen de la interfaz de resultado deseada provista.

Comments are closed.