Ver Mensaje Individual
  #1 (permalink)  
Antiguo 14/09/2012, 10:46
argotan
 
Fecha de Ingreso: septiembre-2012
Mensajes: 7
Antigüedad: 12 años, 2 meses
Puntos: 0
multiple texto en qt

Hola a todos, yo sigo con mi pequeña aplicación. Si la otra vez fue cargar texto desde una variable en pyqt ([URL="http://www.forosdelweb.com/f130/cargar-texto-qt-1013020/"]http://www.forosdelweb.com/f130/cargar-texto-qt-1013020/[/URL]), ahora me toda insertar varias lineas de texto cargas en varia variables. Os explico lo que estoy en realizado:

1) tengo un archivo xml
Código HTML:
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<chat>
    	<mensaje>
		<usuario>2</usuario>
 		<nombre>Argotan</nombre>
		<descripcion>Nakoula Basseley Nakoula, de 55 años, un estadounidense que reside en un suburbio de la ciudad de Los Angeles (California) ha sido indentificado por varios medios de comunicación de EE UU como el autor de la película de bajo presupuesto '</descripcion>
	</mensaje>
	<mensaje>
		<usuario>1</usuario>
 		<nombre>Argotan</nombre>
		<descripcion>El embajador de EE UU en Libia y otros tres estadounidenses murieron el martes en un ataque contra el consulado de los EE UU. Los atacantes eran parte de una turba que culpaba a EE UU por el filme que insulta al profeta. S</descripcion>
	</mensaje>
	<mensaje>
		<usuario>0</usuario>
 		<nombre>Argotan</nombre>
		<descripcion>Las manifestaciones contra la película también han estallado en Egipto, Yemen y otros países musulmanes, con las embajadas de los Estados Unidos de nuevo los objetivos de la ira popular entre los musulmanes cuestionan por qué los Estados Unidos no ha tomado medidas contra los responsables de la película.n</descripcion>
	</mensaje>
	<mensaje>
		<usuario>2</usuario>
 		<nombre>Argotan</nombre>
		<descripcion>Lo cierto es que el vídeo fue subido a YouTube en julio por un autor identificado como Sam Bacile. Alguien que dijo llamarse así y que se encuentra escondido por temor a las represalias, lamentó este miércoles la muerte del embajador aunque declaró, acto seguido, que el "islam es un cáncer" contra el que se propuso "luchar". Varios testimonios aseguran que Bacile es un seudónimo.</descripcion>
	</mensaje>
</chat>

2) creo un script el cual creo recorre con un blucke el archivo con una condicionante (en mi caso el tag usuario tiene que ser igual a una variable usuario), con coincidir la variable con el archivo xml, me imprime los valores de otros dos tag mas
Código:
# importar funcion xml
from xml.dom.minidom import parseString
#abir archivo
file = open('hoja-personaje.xml','r')
data = file.read()
file.close()

# abrir archivo xml
dom = parseString(data)
orden = 0

while orden < 4:
# buscar un valor determinado del archivo xml
	xmlusuario = dom.getElementsByTagName("usuario")[orden].toxml()
	usuario = float(xmlusuario.replace('<usuario>','').replace('</usuario>',''))
#control de usuario
	nombre_usuario = 2
	if nombre_usuario == usuario:
#si el usuario es correcto, continuamos
		xmlnombre = dom.getElementsByTagName("nombre")[orden].toxml()
		nombre = xmlnombre.replace('<nombre>','').replace('</nombre>','')
		xmldescripcion = dom.getElementsByTagName("descripcion")[orden].toxml()
		descripcion = xmldescripcion.replace('<descripcion>','').replace('</descripcion>','')
		print descripcion
		print nombre
	orden += 1
y me devuelve la terminal:
Cita:
Nakoula Basseley Nakoula, de 55 años, un estadounidense que reside en un suburbio de la ciudad de Los Angeles (California) ha sido indentificado por varios medios de comunicación de EE UU como el autor de la película de bajo presupuesto '
Argotan
Lo cierto es que el vídeo fue subido a YouTube en julio por un autor identificado como Sam Bacile. Alguien que dijo llamarse así y que se encuentra escondido por temor a las represalias, lamentó este miércoles la muerte del embajador aunque declaró, acto seguido, que el &quot;islam es un cáncer&quot; contra el que se propuso &quot;luchar&quot;. Varios testimonios aseguran que Bacile es un seudónimo.
Argotan
3) en Qdesigner inserto un objeto TextEdit o PlainTextEdit
4) creo otro script, en el cual cargo la interface y importo las variables descripcion y nombre desde el anterior script, creo las variables en qt y las envio al TextEdit o PlainTextEdit.
Código:
import sys
from PyQt4 import QtCore, QtGui

#importamos la interface del archivo creado
from ui import Ui_ventana

#importamos una variable de otro archivo
from rss2 import descripcion, nombre

#creamos una clase que contega la interface
class principal (QtGui.QMainWindow):

#definimos las variables
	descripcion_1 = descripcion
	nombre_1 = nombre		
#Cargamos la interface grafica
	def __init__(self):
		self.setupUI()
		self.show()
		sys.exit(self.app.exec_())
	
#Ensenamos la interface grafica al usuario
	def setupUI(self):
		self.app=QtGui.QApplication(sys.argv)
		QtGui.QMainWindow.__init__(self)
		self.venta=Ui_ventana()
		self.venta.setupUi(self)

#cargamos la variable no qt en otra varible qt	
		self.descripcion_2 = self.descripcion_1
		self.nombre_2 = self.nombre_1
						
#envimos el informacion carga en al variable a elemento de la interface grafica	
		self.venta.chat.setPlainText(str(self.descripcion_2) + "\n" +str(self.nombre_2))
		
		
# finalizamos el programa
if __name__ == '__main__':
	principal()
Con esto consigo que en el objeto TextEdit o en el PlainTextEdit, tan solo aparecen de los dos textos que aparecen en el archivo xml, el ultimo.
Cita:
Lo cierto es que el vídeo fue subido a YouTube en julio por un autor identificado como Sam Bacile. Alguien que dijo llamarse así y que se encuentra escondido por temor a las represalias, lamentó este miércoles la muerte del embajador aunque declaró, acto seguido, que el &quot;islam es un cáncer&quot; contra el que se propuso &quot;luchar&quot;. Varios testimonios aseguran que Bacile es un seudónimo.
Argotan
En resumen tengo un archio xml en el cual se ira creciendo con informacion y tengo que mostrarlo en una ventana grafica. No se si voy bien en caminado.

Gracias por vuestras respuestas