Python - ¿Cómo recorrer líneas de texto en un objeto QTextEdit? (PySide+QtDesigner)

   
Vista:

¿Cómo recorrer líneas de texto en un objeto QTextEdit? (PySide+QtDesigner)

Publicado por Juan (2 intervenciones) el 25/02/2016 16:52:20
Hola a todos, desde hace un tiempo he querido hacer un programa para renombrar texto (personal puesto que a nadie le va a servir).

El objetivo es que en un objeto QTextEdit llamado tOriginal ingrese por ejemplo 30 líneas y pueda ir recorriendo línea por línea para renombrarlo y se imprima en otro QTextEdit llamado tRenombrado.

Adjunto una imagen para que se den una idea de como debe funcionar:
http://i.imgur.com/TTobRTw.png

Hasta ahora lo único que he logrado es que solo renombre la primera línea mientras que el resto queda intacto.

Y algo opcional es que también me gustaría saber como puedo contar la cantidad de líneas que he ingresado en el QTextEdit tOriginal aunque esto es bastante opcional.

Este es el código que he creado:

1
2
3
4
5
6
7
8
9
10
11
12
13
def __init__(self, parent=None):
    super(ControlMainWindow,self).__init__(parent)
    self.ui=Ui_MainWindow()
    self.ui.setupUi(self)
    QtCore.QObject.connect(self.ui.ButtonRenombrar,QtCore.SIGNAL('clicked()'), self.RInteligente)
 
def RInteligente(self):
    def rename():
        huis=self.ui.lineModelo.text()
        huis1=self.ui.tOriginal.toPlainText()
        huis2=huis1[0:huis1.index(" ")].replace(".", "_")
        return "%s%s.flv"%(huis,huis2)
    self.ui.tRenombrado.setText(rename())

Gracias.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

¿Cómo recorrer líneas de texto en un objeto QTextEdit? (PySide+QtDesigner)

Publicado por Juan (2 intervenciones) el 26/02/2016 00:18:40
Me autorespondo, es increíble, pero la persona que me ayudó ni siquiera sabía programar en QT y esa persona es de otra web.

Dejaré acá el código para quien pueda interesar ya que en mi investigación me he dado cuenta de que no soy el único interesado en recorrer línea por línea dentro de un QTextEdit.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
QtCore.QObject.connect(self.ui.ButtonRenombrar,QtCore.SIGNAL('clicked()'), self.RInteligente)
def RInteligente(self):
    def doRename(huis1,huis):
        huis2=huis1[0:huis1.index(" ")].replace(".","_")
        return "%s%s.flv"%(huis,huis2)
    def rename():
        huis=self.ui.lineModelo.text()
##Aquí agregamos todo el texto dentro de una lista, separando línea por línea usando la función split()
        lines=str(self.ui.tOriginal.toPlainText()).split('\n')
##Una vez que esté en una lista ya podemos usar un bucle for.
        for huis1 in lines:
##Y aquí podremos manipular línea por línea a nuestro antojo, en mi caso he enviado la variable huis1 a una función llamada doRename().
            renamed=doRename(huis1,huis)
##El texto editado lo agregamos a otro objeto que deseemos usando append() y no setText() porque la información no se imprimirá correctamente.
            self.ui.tRenombrado.append(renamed)
    rename()
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar