Un gusto poder 'enseñar' !
Esta sección te permite ver todos los mensajes escritos por este usuario. Ten en cuenta que sólo puedes ver los mensajes escritos en zonas a las que tienes acceso en este momento.
Mostrar Mensajes Menú
Cita de: Runex en 8 Abril 2012, 16:23 PMHola, buen día !
Bueno es.
He estado mirando tus tutoriales y te agradecería que los explicases sin clases de por medio si es posible, implementar clases en tutoriales es bastante lioso.
De todas formas Qt4 parece bastante potente en cuanto a interfaces no?
:from PyQt4 import QtCore, QtGui
import sys, urllib, re
No creo que sea necesario explicar eso 
self.setWindowTitle("Detectar campos de un formulario | 0x5d")
self.resize(510,570)Le damos las dimensiones self.resize(ancho,altura) self.arbol = QtGui.QTreeWidget(self)Creamos el Objeto QTreeWidget(); al poner 'self' dentro indico que se insertará en el mismo formulario y no en otro. self.arbol.setGeometry(5,70,500,500)Le doy las propiedades de ubicación y ancho-alto. setGeometry(x,y,ancho,alto) self.label_url = QtGui.QLabel("URL/Host :", self).setGeometry(5,10,64,27)Creo un Label para insertar un mensaje en el formulario, seguido le doy propiedades de ubicación y dimensiones self.input_url = QtGui.QLineEdit(self)Creo el QLineEdit(); para poder escribir. self.input_url.setGeometry(73,10,430,27)Le doy dimensiones y ubicación al QLineEdit(); self.boton = QtGui.QPushButton("Extraer campos del formulario",self)Creo un Botón self.boton.setGeometry(73,40,430,27)Le doy propiedades de ubicación y dimensión al botón self.connect(self.boton, QtCore.SIGNAL("clicked()"), self.extractor)Le digo al programa que al dar clic(QtCore.SIGNAL("clicked()")) en self.boton , nos dirija a la función def extractor() self.arbol.headerItem().setText(0,"Campos")Con esto señalo la cabecera del QTreeWidget(); que luego los elementos aparecerán abajo. En este caso "Campos" (como ves en la imagen anterior) def extractor(self):La función extractor que llamé desde self.connect() var = urllib.urlopen(str(self.input_url.text())).read()Con str(self.input_url.text()) Obtengo el texto insertado en el QLineEdit() y lo abrimos con urllib.urlopen datos_r = []
for campos in re.findall("<input (.*)>",var):
if "name" in campos.lower():
for cam in campos.split():
if re.findall("name=(.*)",cam):
datos_r.append(cam.replace('"',""))
Con eso obtengo los campos input del sitio web insertado, es cosa de saber Python, nada que ver con QT4for x,y in enumerate(datos_r):
exec("primer_%s = QtGui.QTreeWidgetItem(self.arbol)"%x)
exec("self.arbol.topLevelItem(%s).setText(0, \"%s\")"%(x,y.replace("name=","")))
Ahí es un poco más complicado el caso, puesto que para cada elemento a insertar en nuestro QTreeWidget(); Necesitamos una variable que contenga a este elemento. Uso for x,y enumerate(datos_r): para contabilizar cuantos campos encontró el programa y su valor. Que mediante el primer exec() creo una variable para cada elemento, quedando :exec("self.arbol.topLevelItem(%s).setText(0, \"%s\")"%(x,y.replace("name=","")))self.arbol.topLevelItem(%s) será:
app = QtGui.QApplication(sys.argv)
form = aplica() # Instancia a la clase aplica()
form.show() # Mostramos el formulario que es aplica()
app.exec_() # Corremos la aplicación


# -*- coding: utf-8 -*-
# Autor ~> JaAViEr|0x5d
# Sitio Web ~> http://www.rootcodes.com
# Twitter ~> @0x5d
from PyQt4 import QtCore, QtGui
import sys, urllib, re
class aplica(QtGui.QWidget):
def __init__(self, parent=None):
QtGui.QWidget.__init__(self, parent)
self.setWindowTitle("Detectar campos de un formulario | 0x5d")
self.resize(510,570)
self.arbol = QtGui.QTreeWidget(self)
self.arbol.setGeometry(5,70,500,500)
self.label_url = QtGui.QLabel("URL/Host :", self).setGeometry(5,10,64,27)
self.input_url = QtGui.QLineEdit(self)
self.input_url.setGeometry(73,10,430,27)
self.boton = QtGui.QPushButton("Extraer campos del formulario",self)
self.boton.setGeometry(73,40,430,27)
self.connect(self.boton, QtCore.SIGNAL("clicked()"), self.extractor)
self.arbol.headerItem().setText(0,"Campos")
def extractor(self):
var = urllib.urlopen(str(self.input_url.text())).read()
datos_r = []
for campos in re.findall("<input (.*)>",var):
if "name" in campos.lower():
for cam in campos.split():
if re.findall("name=(.*)",cam):
datos_r.append(cam.replace('"',""))
#print "URL a enviar POST:",url_enviar.replace(">","")
for x,y in enumerate(datos_r):
exec("primer_%s = QtGui.QTreeWidgetItem(self.arbol)"%x)
exec("self.arbol.topLevelItem(%s).setText(0, \"%s\")"%(x,y.replace("name=","")))
app = QtGui.QApplication(sys.argv)
form = aplica()
form.show()
app.exec_()

# -*- coding: utf-8 -*-
# Autor : 0x5d ~> JaAViEr
# Sitio Web ~> www.rootcodes.com
# Twitter ~> @0x5d
from PyQt4 import QtGui, QtCore
import sys
class testeo(QtGui.QWidget):
def __init__(self, parent=None):
QtGui.QWidget.__init__(self, parent)
self.setWindowTitle("Bin to Dec | 0x5d")
self.label_binario = QtGui.QLabel("Binario :", self).setGeometry(2,15,59,17)
self.input_binario = QtGui.QLineEdit(self)
self.input_binario.setGeometry(60,10,230,27)
self.label_resultado = QtGui.QLabel("Resultado :", self).setGeometry(2,50,80,17)
self.input_salida = QtGui.QLineEdit(self)
self.input_salida.setGeometry(80,43,210,27)
self.input_salida.setReadOnly(True)
self.boton_limpiar = QtGui.QPushButton("Limpiar campos", self)
self.boton_limpiar.setGeometry(1,75,140,27)
self.boton_convertir = QtGui.QPushButton("Convertir", self)
self.boton_convertir.setGeometry(145,75,140,27)
self.connect(self.boton_limpiar, QtCore.SIGNAL("clicked()"), self.clear_inputs)
self.connect(self.boton_convertir, QtCore.SIGNAL("clicked()"), self.conversor)
def clear_inputs(self):
self.input_binario.setText("")
self.input_salida.setText("")
def conversor(self):
numero = str(self.input_binario.text())
t = 0
for i,h in zip(numero[::-1],range(0,len(numero))): t+=int(i)*2**int(h)
self.input_salida.setText(str(t))
app = QtGui.QApplication(sys.argv)
form = testeo()
form.show()
app.exec_()

# -*- coding: utf-8 -*-
# Autor : 0x5d ~> JaAViEr
# Sitio Web ~> www.rootcodes.com
# Twitter ~> @0x5d
from PyQt4 import QtGui, QtCore
import sys
class testeo(QtGui.QWidget):
def __init__(self, parent=None):
QtGui.QWidget.__init__(self, parent)
self.setWindowTitle("Dec to Bin | 0x5d")
self.label_binario = QtGui.QLabel("Decimal:", self).setGeometry(2,15,59,17)
self.input_binario = QtGui.QLineEdit(self)
self.input_binario.setGeometry(60,10,230,27)
self.label_resultado = QtGui.QLabel("Resultado :", self).setGeometry(2,50,80,17)
self.input_salida = QtGui.QLineEdit(self)
self.input_salida.setGeometry(80,43,210,27)
self.input_salida.setReadOnly(True)
self.boton_limpiar = QtGui.QPushButton("Limpiar campos", self)
self.boton_limpiar.setGeometry(1,75,140,27)
self.boton_convertir = QtGui.QPushButton("Convertir", self)
self.boton_convertir.setGeometry(145,75,140,27)
self.connect(self.boton_limpiar, QtCore.SIGNAL("clicked()"), self.clear_inputs)
self.connect(self.boton_convertir, QtCore.SIGNAL("clicked()"), self.conversor)
def clear_inputs(self):
self.input_binario.setText("")
self.input_salida.setText("")
def conversor(self):
resto = []
nuevo = [int(self.input_binario.text())]
while nuevo[-1]!=0:
resto.append(nuevo[-1]%2)
nuevo.append(nuevo[-1]/2)
s = ""
for i in resto[::-1]: s+="%s"%i
self.input_salida.setText(str(s))
app = QtGui.QApplication(sys.argv)
form = testeo()
form.show()
app.exec_()
PS1="\[$(tput setaf 6)\]\w\[$(tput setaf 1)@$(tput setaf 3)Debian$(tput setaf 1) ~~> $(tput setaf 2)\]"
alias www="cd /var/www"
alias casa="cd /home/jaavier"
alias f5="sudo apt-get update &&sudo apt-get upgrade"
alias c_alias="kate .bash_aliases"Cita de: DanFire en 17 Febrero 2012, 14:19 PMHola, buen día.
hola,
he innstalado la última versión de ubuntu en mi vieja torre pentium 4 y no detecta
la conexión por cable.
Me preguntaba si a alguien le ha pasado algo parecido o tiene la solución.
Gracias.


print "Escribiste", var
print "Escribiste %s"%var
Cita de: bichotg en 19 Febrero 2012, 09:23 AMNo problem ! cualquier duda solo planteala
Los dos habéis repuesto de una manera clarísima y facilísima de entender, creo que me lie un poco con algo que vi para recorrer una lista o que se yo. jeje, es mi primer lenguaje y me cuesta un poco, pero soy constante, he andado por varios foros preguntando siempre mis dudas de python, y de verdad que aqui es donde mejor lo explicais,
Muchas gracias!!!