Abril 21, 2018, 07:15:40 am

Autor Tema: [Código-PyQT4] IconFinder - JaAViEr | 0x5d  (Leído 2922 veces)

0 Usuarios y 1 Visitante están viendo este tema.

Desconectado JaAViEr

  • ¡ Programming the world !
  • Colaborador
  • ****
  • Mensajes: 8218
  • http://ethereumchile.cl
    • Ver Perfil
    • Ethereum Chile
[Código-PyQT4] IconFinder - JaAViEr | 0x5d
« en: Octubre 31, 2013, 04:59:33 am »
Hola, buen día !

Hoy navegando por la web "Daw-Labs", me topé con que el compañero WindHack creó una aplicación para buscar iconos en You are not allowed to view links. Register or Login . Intenté hacerlo igual visualmente, pero en PyQT4 (además me sirvió de práctica) espero os guste :

Código: (python) You are not allowed to view links. Register or Login
# -*- coding: utf-8 -*-
# Autor: 0x5d | JaAViEr
# Twitter: @0x5d

from PyQt4 import QtGui, QtCore, QtWebKit
import sys
import urllib
import re

try:
    _fromUtf8 = QtCore.QString.fromUtf8
except AttributeError:
    def _fromUtf8(s):
        return s


class programa(QtGui.QWidget):

def __init__(self, parent=None):
QtGui.QWidget.__init__(self, parent)
self.msg = QtGui.QMessageBox(self)
self.msg.setWindowTitle(_fromUtf8("Información"))
self.setWindowTitle(_fromUtf8('IconFinder PyQT4 Version | 0x5d'))
self.resize(529, 440)
self.input_busqueda = QtGui.QLineEdit(self)
self.input_busqueda.setGeometry(10, 20, 371, 20)
self.boton_buscar = QtGui.QPushButton("Buscar", self)
self.boton_buscar.setGeometry(390, 10, 61, 41)
self.boton_guardar = QtGui.QPushButton("Guardar", self)
self.boton_guardar.setGeometry(455, 10, 61, 41)
self.connect(self.boton_guardar, QtCore.SIGNAL("clicked()"), self.guardar)
#TABLA ORDENADORA DE RESULTADOS
self.tabla = QtGui.QTreeWidget(self)
self.tabla.setGeometry(0, 195, 530, 246)
self.tabla.headerItem().setText(0, "#")
self.tabla.headerItem().setText(1, "Id.")
self.tabla.headerItem().setText(2, _fromUtf8("Tamaño"))
self.tabla.headerItem().setText(3, "Url")
#FIN TABLA
self.grupo_options = QtGui.QGroupBox(self)
self.grupo_options.setGeometry(10, 47, 291, 101)
self.icon_perpage_label = QtGui.QLabel(self.grupo_options)
self.icon_perpage_label.setGeometry(20, 30, 90, 16)
self.icons_perpage_spin = QtGui.QSpinBox(self.grupo_options)
self.icons_perpage_spin.setGeometry(113, 27, 47, 22)
self.icons_perpage_spin.setProperty("value", 20)
self.minimum_size_label = QtGui.QLabel(self.grupo_options)
self.minimum_size_label.setGeometry(20, 70, 100, 13)
self.minimum_size_spin = QtGui.QSpinBox(self.grupo_options)
self.minimum_size_spin.setMaximum(190)
self.minimum_size_spin.setGeometry(113, 65, 47, 22)
self.minimum_size_spin.setProperty("value", 16)
self.maximum_size_label = QtGui.QLabel(self.grupo_options)
self.maximum_size_label.setGeometry(170, 70, 70, 13)
self.maximum_size_spin = QtGui.QSpinBox(self.grupo_options)
self.maximum_size_spin.setGeometry(241, 67, 42, 22)
self.maximum_size_spin.setMaximum(190)
self.maximum_size_spin.setProperty("value", 40)
self.grupo_preview = QtGui.QGroupBox(self)
self.grupo_preview.setGeometry(320, 47, 201, 141)
self.total_results_label = QtGui.QLabel(self)
self.total_results_label.setGeometry(20, 145, 81, 21)
self.total_results_label.setStyleSheet("font-weight: bold;")
self.numero_results_label = QtGui.QLabel(self)
self.numero_results_label.setGeometry(100, 145, 31, 21)
self.numero_results_label.setStyleSheet("font-weight: bold;")
self.viewing_page_label = QtGui.QLabel(self)
self.viewing_page_label.setGeometry(132, 145, 91, 21)
self.viewing_page_label.setStyleSheet("font-weight: bold;")
self.number_vpage_label = QtGui.QLabel(self)
self.number_vpage_label.setGeometry(190, 145, 51, 21)
self.number_vpage_label.setStyleSheet("font-weight: bold;")
self.go_page_label = QtGui.QLabel(_fromUtf8("Ir a página:"), self)
self.go_page_label.setGeometry(20, 170, 71, 16)
self.go_page_label.setStyleSheet("font-weight: bold;")
self.go_page_spin = QtGui.QSpinBox(self)
self.go_page_spin.setGeometry(89, 168, 42, 22)

self.grupo_options.setTitle("Opciones")
self.icon_perpage_label.setText(_fromUtf8("Iconos por página:"))
self.minimum_size_label.setText(_fromUtf8("Tamaño mínimo    :"))
self.maximum_size_label.setText(_fromUtf8("Tam. máximo:"))
self.grupo_preview.setTitle("Prevista")
self.total_results_label.setText("Resultados:")
self.numero_results_label.setText("0")
self.viewing_page_label.setText(_fromUtf8("| Página:"))
self.number_vpage_label.setText("0")
self.connect(self.boton_buscar, QtCore.SIGNAL("clicked()"), self.buscar)
self.connect(self.tabla, QtCore.SIGNAL('itemClicked(QTreeWidgetItem*, int)'), self.ver_link)
self.preview = QtWebKit.QWebView(self.grupo_preview)
self.preview.setGeometry(6, 16, 191, 115)
#Twitter Logo
# self.twitter = QtWebKit.QWebView(self)
# self.twitter.setGeometry(280, 0, 121, 80)
# self.twitter.setStyleSheet("background-color: transparent; ")
# self.twitter.setHtml("<center><a href='#' onclick='window.open(\"http://www.google.cl\")'><img src='%s' width=53 height=53 border=0></a></center>" % ("https://cdn3.iconfinder.com/data/icons/follow-me/256/Twitter-64.png"))
self.connect(self.input_busqueda, QtCore.SIGNAL("returnPressed()"), self.buscar)
self.connect(self, QtCore.SIGNAL("closeEvent()"), self.close)

def guardar(self):
archivo = QtGui.QFileDialog.getSaveFileName(self,
                self.tr("Guardar Archivo"), ".")
try:
loader = urllib.urlopen(str(self.url)).read()
file = open(archivo, "wb")
file.write(loader)
file.close()
self.msg.setText(_fromUtf8("Tu archivo se guardó con éxito"))
except:
self.msg.setText(_fromUtf8("¡Tu archivo no se pudo guardar!"))
pass
self.msg.exec_()
def ver_link(self, item, i):
self.url = item.text(3)
self.preview.setStyleSheet("background-color: transparent; ")
self.preview.setHtml("<center><img src='%s'></center>" % self.url)

def buscar(self):
self.tabla.clear()
q = str(self.input_busqueda.text())
icons_perpage = self.icons_perpage_spin.value()
min_size = self.minimum_size_spin.value()
max_size = self.maximum_size_spin.value()
page = self.go_page_spin.value()
url = urllib.urlopen("https://www.iconfinder.com/xml/search/?q=%s&c=%s&min=%s&max=%s&p=%s&api_key=4c5b276337af418894c87590412e4e39" % (q, icons_perpage, min_size, max_size, page)).read()
x = url.split("<icon>")
id = []
size = []
image = []
for d in x:
for idx in re.findall("<id>(.+?)<\/id>", d):
id.append(idx)
for sizex in re.findall("<size>(.+?)<\/size>", d):
size.append(sizex)
for imagex in re.findall("<image>(.+?)<\/image>", d):
image.append(imagex)
count = 1;
for i, idx, sizex, imagex in zip(range(len(id)), id, size, image):
exec("item_%s = QtGui.QTreeWidgetItem(self.tabla)"%i)
self.tabla.topLevelItem(i).setText(0, str(count))
self.tabla.topLevelItem(i).setText(1, str(idx))
self.tabla.topLevelItem(i).setText(2, str(sizex))
self.tabla.topLevelItem(i).setText(3, str(imagex))
count += 1
self.number_vpage_label.setText(str(page))
self.numero_results_label.setText(str(count-1))

app = QtGui.QApplication(sys.argv)
form = programa()
form.show()
app.exec_()
¡MI TWITTER You are not allowed to view links. Register or Login!
You are not allowed to view links. Register or Login !

Desconectado BigBear

  • Yo vivo en CPH
  • ***
  • Mensajes: 736
  • Sexo: Masculino
    • Ver Perfil
Re:[Código-PyQT4] IconFinder - JaAViEr | 0x5d
« Respuesta #1 en: Octubre 31, 2013, 10:55:26 am »
yo tambien hice uno en perl.

Desconectado JaAViEr

  • ¡ Programming the world !
  • Colaborador
  • ****
  • Mensajes: 8218
  • http://ethereumchile.cl
    • Ver Perfil
    • Ethereum Chile
Re:[Código-PyQT4] IconFinder - JaAViEr | 0x5d
« Respuesta #2 en: Octubre 31, 2013, 02:54:22 pm »
Pues no había visto ninguno en Python + QT4 .

Desconectado BigBear

  • Yo vivo en CPH
  • ***
  • Mensajes: 736
  • Sexo: Masculino
    • Ver Perfil
Re:[Código-PyQT4] IconFinder - JaAViEr | 0x5d
« Respuesta #3 en: Octubre 31, 2013, 03:33:01 pm »
es una buena idea para hacer en delphi.

Desconectado JaAViEr

  • ¡ Programming the world !
  • Colaborador
  • ****
  • Mensajes: 8218
  • http://ethereumchile.cl
    • Ver Perfil
    • Ethereum Chile
Re:[Código-PyQT4] IconFinder - JaAViEr | 0x5d
« Respuesta #4 en: Octubre 31, 2013, 05:01:52 pm »
Creo que la idea principal de WindHack está hecha en Delphi

Desconectado BigBear

  • Yo vivo en CPH
  • ***
  • Mensajes: 736
  • Sexo: Masculino
    • Ver Perfil
Re:[Código-PyQT4] IconFinder - JaAViEr | 0x5d
« Respuesta #5 en: Octubre 31, 2013, 05:34:32 pm »
sabia que habia visto esa idea en algun lado xDD.

Desconectado messerschmitt

  • Si te metes con CPH
    te metes conmigo
  • ****
  • Mensajes: 2242
  • Sexo: Masculino
    • Ver Perfil
Re:[Código-PyQT4] IconFinder - JaAViEr | 0x5d
« Respuesta #6 en: Noviembre 01, 2013, 05:53:28 am »
Ha sido una conversación bastante intensa, caballeros.
Venga javi, dile a doddy que también él es un crack y hace cosas guays
Y Dios vio que era bueno y dijo:
Noo, no tes has equivocado de foro, Atención Atención

Desconectado JaAViEr

  • ¡ Programming the world !
  • Colaborador
  • ****
  • Mensajes: 8218
  • http://ethereumchile.cl
    • Ver Perfil
    • Ethereum Chile
Re:[Código-PyQT4] IconFinder - JaAViEr | 0x5d
« Respuesta #7 en: Noviembre 01, 2013, 08:42:58 am »
Jajajajaja no te entendí messer :( <3 :-*


exclamation
[Código-PyQT4]All in one - JaAViEr(0x5d)

Iniciado por JaAViEr

0 Respuestas
1097 Vistas
Último mensaje Febrero 10, 2012, 10:04:46 pm
por JaAViEr
xx
[Código-PyQT4] Escaner de Puertos - JaAViEr | 0x5d

Iniciado por JaAViEr

17 Respuestas
9283 Vistas
Último mensaje Noviembre 02, 2013, 11:00:19 pm
por The X-C3LL
exclamation
[Código-PyQT4]Extractor de imágenes - JaAViEr(0x5d)

Iniciado por JaAViEr

0 Respuestas
1020 Vistas
Último mensaje Diciembre 24, 2011, 01:49:38 pm
por JaAViEr
exclamation
[Código-PyQT4]Calculadora por secuencias - JaAViEr(0x5d)

Iniciado por JaAViEr

1 Respuestas
1160 Vistas
Último mensaje Diciembre 25, 2011, 01:15:23 pm
por daryo
exclamation
[Código-PyQT4]Binario a decimal y su inverso - JaAViEr | 0x5d

Iniciado por JaAViEr

0 Respuestas
1094 Vistas
Último mensaje Abril 06, 2012, 03:36:39 pm
por JaAViEr
exclamation
[Código-PyQT4]Detectar campos de un formulario web - JaAViEr|0x5d

Iniciado por JaAViEr

4 Respuestas
1612 Vistas
Último mensaje Abril 17, 2012, 10:20:39 pm
por JaAViEr
exclamation
[Tutorial]Aprendiendo PyQT4 [Parte1]- JaAViEr (0x5d)

Iniciado por JaAViEr

0 Respuestas
898 Vistas
Último mensaje Febrero 11, 2012, 12:15:11 pm
por JaAViEr
exclamation
[Tutorial]Aprendiendo PyQT4 [Parte4]- JaAViEr (0x5d)

Iniciado por JaAViEr

4 Respuestas
1172 Vistas
Último mensaje Febrero 15, 2012, 11:59:25 am
por JaAViEr
exclamation
[Tutorial]Aprendiendo PyQT4 [Parte2]- JaAViEr (0x5d)

Iniciado por JaAViEr

0 Respuestas
870 Vistas
Último mensaje Febrero 11, 2012, 01:12:37 pm
por JaAViEr
exclamation
[Tutorial]Aprendiendo PyQT4 [Parte3]- JaAViEr (0x5d)

Iniciado por JaAViEr

0 Respuestas
939 Vistas
Último mensaje Febrero 11, 2012, 01:20:12 pm
por JaAViEr