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()
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.