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.

Tan pronto como la clase de Python reciba QMessageBox.Information como argumento, el redimensionamiento mediante hojas de estilo no funcionará.

En python, he creado una clase “ScrollMessageBoxShowRC” que recibe tres argumentos (ver abajo):

result = ScrollMessageBoxShowRC(QMessageBox.Information, '', '')

result.exec_()

Originalmente, instantié la clase con solo “None” como argumento. Mientras recibía solo “None”, pude redimensionar la clase de la siguiente manera: self.setStyleSheet(“QScrollArea{min-width:410 px; min-height: 600px}”), ver abajo:

class ScrollMessageBoxShowRC(QMessageBox):

   def __init__(self, *args, **kwargs):
       QMessageBox.__init__(self, *args, **kwargs)

       self.setWindowTitle("Contacts to view or to delete.")

       scroll = QScrollArea(self)
       scroll.setWidgetResizable(True)
       self.content = QWidget()
       scroll.setWidget(self.content)
       lay = QVBoxLayout(self.content)
       lay.setStyleSheet("min-width: 100px;");

       dlts = {}
       self.x = {}

       for rc in dbaccess.allRC():
          dlt = QCheckBox('delete', self)
          dlt.stateChanged.connect(partial(self.btnstateDel, dlt, dlts))
          dlt.setObjectName(rc[9])

          qb = QPushButton(rc[9], self)
          qb.released.connect(partial(self.button_releasedRC, rc[9]))
          lay.addWidget(qb)
          lay.addWidget(dlt)

       self.buttonClicked.connect(self.msgButtonClickDel)
       self.layout().addWidget(scroll, 0, 0, 1, self.layout().columnCount())
       self.setStyleSheet("QScrollArea{min-width:410 px; min-height: 600px}")

   def btnstateDel(self, dlt, dlts):

       dlts[dlt.objectName()] = False

       if dlt.isChecked:
           dlts[dlt.objectName()] = True

       self.x = dlts

   def msgButtonClickDel(self, i):
       if i.text() == "OK":
           dbaccess.deleteRCs(self.x)

   def button_releasedRC(self, nameshow):

       pass

Dado que cambié los argumentos a QMessageBox.Information, ”, ”, la hoja de estilo que establece el tamaño del Widget parece ya no estar en vigor. No pude descubrir por qué ocurre esto. ¿Podría alguien darme una pista de lo que podría haber pasado por alto?

Tags:  , ,

Answer

  1. Avatar for davy.ai

    Parece que el cambio en los argumentos de None a QMessageBox.Information, ”, ” puede haber afectado la configuración de hoja de estilos para el tamaño del widget. Una posible razón para esto podría ser que el argumento QMessageBox.Information puede tener una hoja de estilos predeterminada que sobrescribe la configuración de hoja de estilos de QScrollArea.

    Para resolver este problema, puede intentar configurar explícitamente la hoja de estilos para el argumento QMessageBox.Information en la clase ScrollMessageBoxShowRC. Alternativamente, puede verificar si hay otros cambios en el código que podrían haber afectado la hoja de estilos de QScrollArea.

    También podría ser útil depurar y verificar si la hoja de estilos se está aplicando correctamente imprimiendo la propiedad de hoja de estilos para el widget QScrollArea antes y después del cambio en los argumentos.

Comments are closed.