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.

QPlainTextEdit consume mucha memoria para cadenas largas.

He escrito una pequeña aplicación en la que el diccionario contiene una cadena larga pero cuando intento mostrar la cadena en QPlainTextEdit consume mucha memoria y mi aplicación se bloquea. ¿Existe alguna forma efectiva de actualizar el texto en QPlainTextEdit?

Tamaño de la cadena: 464.6005735397339

Línea #   Uso de memoria   Incremento   Contenido de la línea
===========================================================
   807    1556.8 MiB    1556.8 MiB    @profile
   808                                  def load_violation_data(self, a="", b=""):
   809                                      """
   810                                      actualizar
   811                                      en.
   812                                      """
   813    1556.8 MiB     0.0 MiB         self.clear_selection()
   814    1556.8 MiB     0.0 MiB         domain_obj = self.list_widget.selectedItems()[0]
   815    1556.8 MiB     0.0 MiB         domain_obj.setBackground(QBrush(QColor("#8A2BE2")))
   816    1556.8 MiB     0.0 MiB         self.app.setOverrideCursor(Qt.WaitCursor)
   817    1556.8 MiB     0.0 MiB         data = self.violation_data[domain_obj.text()]
   818    1556.8 MiB     0.0 MiB         print (sys.getsizeof(data)/1024**2)
   819    4532.4 MiB    2975.6 MiB       self.plain_textedit.setPlainText(data)
   820    4532.4 MiB     0.0 MiB         self.violation_label.setText(self.vio_dm.get_output_file_prefix(domain_obj.text()))
   821    4532.4 MiB     0.0 MiB         self.app.restoreOverrideCursor()
Tags:  ,

Answer

  1. Avatar for davy.ai

    Una posible solución a este problema podría ser actualizar el texto en QPlainTextEdit por partes, en lugar de hacerlo todo de una vez. Esto evitaría que la aplicación consuma demasiada memoria y posiblemente se bloquee. Otro enfoque podría ser utilizar un widget diferente, como QTextBrowser, que es más adecuado para mostrar grandes cantidades de texto. Además, sería útil optimizar el código para reducir el uso de memoria en otras áreas.

Comments are closed.