jueves, 11 de agosto de 2016

¿CÓMO MOSTRAR EL CÓDIGO HTML DE UNA PÁGINA WEB CON PYTHON?

Hola en esta entrada voy a mostrar un código que permite obtener el código HTML de cualquier página el Python.

En este caso se obtiene el código HTML de la página www.google.com


 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
import sys
from PyQt4.QtGui import QApplication
from PyQt4.QtCore import QUrl
from PyQt4.QtWebKit import QWebView


class Browser(QWebView):
    def __init__(self):
        QWebView.__init__(self)
        self.loadFinished.connect(self._result_available)

    def _result_available(self, ok):
        frame = self.page().mainFrame()
        print unicode(frame.toHtml()).encode('utf-8')

if __name__ == '__main__':
    app = QApplication(sys.argv)
    view = Browser()
    view.load(QUrl('http://www.google.com'))
    app.exec_()

Al ejecutar el código, obtenemos:
 Es todo. Muchas gracias.

¿CÓMO CREAR SUBVENTANAS EN PYTHON-PYQT?

Hola en esta entrada explicaré una forma en utilizar subventanas en PyQT utilizando otras interfaces gráficas independientes, en este caso crearé 3 interfaces gráficas diferentes. Utilizaré ejercicios que ya he usado previamente y que también los puede encontrar en el BLOG.

PASO 1: Crear la primera interfaz gráfica y convertir de .ui a .py. Esta interfaz es para escoger si quiero ver un mapa o una imágen.

Se hace la conversión del archivo ejemplo.ui a ejemplo.py
ejemplo.py
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
# -*- coding: utf-8 -*-

# Form implementation generated from reading ui file 'ejemplo.ui'
#
# Created by: PyQt4 UI code generator 4.11.4
#
# WARNING! All changes made in this file will be lost!

from PyQt4 import QtCore, QtGui

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

try:
    _encoding = QtGui.QApplication.UnicodeUTF8
    def _translate(context, text, disambig):
        return QtGui.QApplication.translate(context, text, disambig, _encoding)
except AttributeError:
    def _translate(context, text, disambig):
        return QtGui.QApplication.translate(context, text, disambig)

class Ui_Dialog(object):
    def setupUi(self, Dialog):
        Dialog.setObjectName(_fromUtf8("Dialog"))
        Dialog.resize(233, 129)
        self.pushButton = QtGui.QPushButton(Dialog)
        self.pushButton.setGeometry(QtCore.QRect(40, 30, 141, 23))
        self.pushButton.setObjectName(_fromUtf8("pushButton"))
        self.pushButton_2 = QtGui.QPushButton(Dialog)
        self.pushButton_2.setGeometry(QtCore.QRect(40, 60, 141, 23))
        self.pushButton_2.setObjectName(_fromUtf8("pushButton_2"))

        self.retranslateUi(Dialog)
        QtCore.QMetaObject.connectSlotsByName(Dialog)

    def retranslateUi(self, Dialog):
        Dialog.setWindowTitle(_translate("Dialog", "Dialog", None))
        self.pushButton.setText(_translate("Dialog", "MAPA", None))
        self.pushButton_2.setText(_translate("Dialog", "IMAGEN", None))

PASO 2: La segunda interfaz gráfica la vamos a tomar de un ejercicio que se hizo anteriormente en el blog (míralo acá: Es el PASO 1). Pero esta vez vamos a modificar el código para activar el botón REGRESAR. Además se debe importar la función de browser que también se encuentra en el ejercicio del link de este paso.

codigo_mapa.py
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
#!/usr/bin/python
# -*- coding: utf-8 -*-
'''
Código creado por: Gibson Sneyder Ramírez Moreno
correo: sramirez.udea@gmail.com
http://pythoninicios.blogspot.com.co/
'''
import sys
from mapa import *
from PyQt4.QtGui import QApplication
from PyQt4.QtCore import QUrl
from PyQt4.QtWebKit import QWebView
import browser
import subventanas

class showmap(QtGui.QDialog):
    def __init__(self,parent=None):
        QtGui.QWidget.__init__(self,parent)
        QWebView.__init__(self)
        self.ui = Ui_Dialog()
        self.ui.setupUi(self)
              
        QtCore.QObject.connect(self.ui.pushButton, QtCore.SIGNAL('clicked()'),self.calcular)
        QtCore.QObject.connect(self.ui.pushButton_3, QtCore.SIGNAL('clicked()'),self.regresar)
        QtCore.QObject.connect(self.ui.pushButton_2, QtCore.SIGNAL('clicked()'),self.salir)

    def calcular(self):
        latitud=self.ui.lineEdit.text()
        longitud=self.ui.lineEdit_2.text()
        html=browser.localizacion(latitud,longitud)
        self.ui.webView.setHtml(html)
        
    def regresar(self):
        self.close()
        atras=subventanas.sunw().exec_()
        
        
    def salir(self):
        self.close()
        
if __name__== "__main__":
    app=QtGui.QApplication(sys.argv)
    myapp = showmap()
    myapp.show()
    sys.exit(app.exec_())
PASO 3: Crear la tercera interfaz gráfica y convertir de .ui a .py. Esta interfaz es el ejercicio que permite visualizar imagenes en PYQT que también se hizo anteriormente (míralo acá Es el PASO 1). Pero esta vez vamos a modificar el código para activar el botón REGRESAR.

codigo_foto.py

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
#!/usr/bin/python
# -*- coding: utf-8 -*-
'''
Código creado por: Gibson Sneyder Ramírez Moreno
correo: sramirez.udea@gmail.com
http://pythoninicios.blogspot.com.co/
'''
import sys
from foto import *
from PyQt4.QtGui import QApplication
from PyQt4.QtCore import QUrl
from PyQt4.QtWebKit import QWebView
import subventanas


class showmap(QtGui.QDialog):
    def __init__(self,parent=None):
        QtGui.QWidget.__init__(self,parent)
        QWebView.__init__(self)
        self.ui = Ui_Dialog()
        self.ui.setupUi(self)
              
        QtCore.QObject.connect(self.ui.pushButton, QtCore.SIGNAL('clicked()'),self.mostrar)
        QtCore.QObject.connect(self.ui.pushButton_3, QtCore.SIGNAL('clicked()'),self.regresar)
        QtCore.QObject.connect(self.ui.pushButton_2, QtCore.SIGNAL('clicked()'),self.salir)

    def mostrar(self):
        imagen=self.ui.lineEdit.text()
        self.ui.webView.load(QUrl(imagen))
        
    def regresar(self):
        self.close()
        atras=subventanas.sunw().exec_()
        
        
    def salir(self):
        self.close()
        
if __name__== "__main__":
    app=QtGui.QApplication(sys.argv)
    myapp = showmap()
    myapp.show()
    sys.exit(app.exec_())
 PASO 4: Crear el archivo ejecutable.
subventanas.py
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
#!/usr/bin/python
# -*- coding: utf-8 -*-
'''
Código creado por: Gibson Sneyder Ramírez Moreno
correo: sramirez.udea@gmail.com
http://pythoninicios.blogspot.com.co/
'''
import sys
from ejemplo import *
import codigo_mapa
import codigo_foto

class sunw(QtGui.QDialog):
    def __init__(self,parent=None):
        QtGui.QWidget.__init__(self,parent)
        self.ui = Ui_Dialog()
        self.ui.setupUi(self)
        QtCore.QObject.connect(self.ui.pushButton, QtCore.SIGNAL('clicked()'),self.mapa)
        QtCore.QObject.connect(self.ui.pushButton_2, QtCore.SIGNAL('clicked()'),self.imagen)
    
    def mapa(self):
        self.close()
        ventana_mapa=codigo_mapa.showmap().exec_()
       

    def imagen(self):
        self.close()
        ventana_image=codigo_foto.showmap().exec_()
        

if __name__== "__main__":
    app=QtGui.QApplication(sys.argv)
    myapp = sunw()
    myapp.show()
    sys.exit(app.exec_())

Para esta entrada voy a mostrar un video para mostrar su funcionamiento. Muchas gracias. Alguna duda estaré atento.





¿CÓMO VISUALIZAR IMÁGENES EN PYTHON-PYQT II?

Hola esta vez nuestro ejercicio permite recibir el enlace de una imagen en un lineEdit, y luego mostrarla en un QWebView. El ejercicio que había realizado anteriormente debía llevar el enlace de la imagen dentro del código y hacer la modificación era mas "engorroso"(ejercicio anterior). Empecemos.

PASO 1: Crear la interfaz gráfica en QT y convertir de .ui a .py.
Nota: El botón REGRESAR no va a tener una funcionalidad en este ejercicio, en otra entrada servirá para explicar subventanas.

 se hace la conversión:

 
 Se obtiene el siguiente código:
foto.py
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
# -*- coding: utf-8 -*-

# Form implementation generated from reading ui file 'foto.ui'
#
# Created by: PyQt4 UI code generator 4.11.4
#
# WARNING! All changes made in this file will be lost!

from PyQt4 import QtCore, QtGui

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

try:
    _encoding = QtGui.QApplication.UnicodeUTF8
    def _translate(context, text, disambig):
        return QtGui.QApplication.translate(context, text, disambig, _encoding)
except AttributeError:
    def _translate(context, text, disambig):
        return QtGui.QApplication.translate(context, text, disambig)

class Ui_Dialog(object):
    def setupUi(self, Dialog):
        Dialog.setObjectName(_fromUtf8("Dialog"))
        Dialog.resize(543, 372)
        self.webView = QtWebKit.QWebView(Dialog)
        self.webView.setGeometry(QtCore.QRect(60, 40, 471, 291))
        self.webView.setUrl(QtCore.QUrl(_fromUtf8("about:blank")))
        self.webView.setObjectName(_fromUtf8("webView"))
        self.pushButton = QtGui.QPushButton(Dialog)
        self.pushButton.setGeometry(QtCore.QRect(60, 340, 75, 23))
        self.pushButton.setObjectName(_fromUtf8("pushButton"))
        self.lineEdit = QtGui.QLineEdit(Dialog)
        self.lineEdit.setGeometry(QtCore.QRect(60, 10, 471, 20))
        self.lineEdit.setObjectName(_fromUtf8("lineEdit"))
        self.label = QtGui.QLabel(Dialog)
        self.label.setGeometry(QtCore.QRect(10, 10, 51, 20))
        self.label.setObjectName(_fromUtf8("label"))
        self.pushButton_2 = QtGui.QPushButton(Dialog)
        self.pushButton_2.setGeometry(QtCore.QRect(460, 340, 75, 23))
        self.pushButton_2.setObjectName(_fromUtf8("pushButton_2"))
        self.pushButton_3 = QtGui.QPushButton(Dialog)
        self.pushButton_3.setGeometry(QtCore.QRect(370, 340, 75, 23))
        self.pushButton_3.setObjectName(_fromUtf8("pushButton_3"))

        self.retranslateUi(Dialog)
        QtCore.QMetaObject.connectSlotsByName(Dialog)

    def retranslateUi(self, Dialog):
        Dialog.setWindowTitle(_translate("Dialog", "Dialog", None))
        self.pushButton.setText(_translate("Dialog", "MOSTRAR", None))
        self.label.setText(_translate("Dialog", "ENLACE:", None))
        self.pushButton_2.setText(_translate("Dialog", "SALIR", None))
        self.pushButton_3.setText(_translate("Dialog", "REGRESAR", None))

from PyQt4 import QtWebKit

PASO 2: Elegir una imagen, guardar su dirección url (esta es la mía)
 PASO 3: Crear el archivo ejecutable.
codigo_foto.py 

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
import sys
from foto import *
from PyQt4.QtGui import QApplication
from PyQt4.QtCore import QUrl
from PyQt4.QtWebKit import QWebView


class showmap(QtGui.QDialog):
    def __init__(self,parent=None):
        QtGui.QWidget.__init__(self,parent)
        QWebView.__init__(self)
        self.ui = Ui_Dialog()
        self.ui.setupUi(self)
              
        QtCore.QObject.connect(self.ui.pushButton, QtCore.SIGNAL('clicked()'),self.mostrar)
        QtCore.QObject.connect(self.ui.pushButton_3, QtCore.SIGNAL('clicked()'),self.regresar)
        QtCore.QObject.connect(self.ui.pushButton_2, QtCore.SIGNAL('clicked()'),self.salir)

    def mostrar(self):
        imagen=self.ui.lineEdit.text()
        self.ui.webView.load(QUrl(imagen))
        
    def regresar(self):
        self.close()
        
    def salir(self):
        self.close()
        
if __name__== "__main__":
    app=QtGui.QApplication(sys.argv)
    myapp = showmap()
    myapp.show()
    sys.exit(app.exec_())

Al ejecutar e ingresar la dirección URL esto es lo que se obtiene:

Es todo muchas gracias. Si tienen alguna duda estaré atento.

¿CÓMO VISUALIZAR UN PUNTO EN GOOGLE MAPS CON PYTHON-PYQT?


Hola a todos este ejercicio permite ubicar un punto en Google Maps en una interfaz gráfica de Python (PyQT), basta con ingresar las coordenadas latitud y longitud del punto. En una entrada anterior al Blog el ejercicio sólo mostraba el mapa con un punto asignado (míralo acá), pero en este ejercicio podemos mostrar el punto que se desee consultar.


PASO 1: Crear la interfaz gráfica en QT. 

Nota: El botón REGRESAR, no va a tener una funcionalidad en este ejercicio, en otra entrada servirá para explicar subventanas.

  
PASO 2: Convertir la extensión del archivo creado en QT  de .ui a .py
Este es el archivo generado en la conversión:
mapa.py
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
# -*- coding: utf-8 -*-

# Form implementation generated from reading ui file 'mapa.ui'
#
# Created by: PyQt4 UI code generator 4.11.4
#
# WARNING! All changes made in this file will be lost!

from PyQt4 import QtCore, QtGui

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

try:
    _encoding = QtGui.QApplication.UnicodeUTF8
    def _translate(context, text, disambig):
        return QtGui.QApplication.translate(context, text, disambig, _encoding)
except AttributeError:
    def _translate(context, text, disambig):
        return QtGui.QApplication.translate(context, text, disambig)

class Ui_Dialog(object):
    def setupUi(self, Dialog):
        Dialog.setObjectName(_fromUtf8("Dialog"))
        Dialog.resize(596, 342)
        self.webView = QtWebKit.QWebView(Dialog)
        self.webView.setGeometry(QtCore.QRect(170, 10, 421, 291))
        self.webView.setUrl(QtCore.QUrl(_fromUtf8("about:blank")))
        self.webView.setObjectName(_fromUtf8("webView"))
        self.pushButton = QtGui.QPushButton(Dialog)
        self.pushButton.setGeometry(QtCore.QRect(30, 120, 75, 23))
        self.pushButton.setObjectName(_fromUtf8("pushButton"))
        self.lineEdit = QtGui.QLineEdit(Dialog)
        self.lineEdit.setGeometry(QtCore.QRect(10, 30, 151, 20))
        self.lineEdit.setObjectName(_fromUtf8("lineEdit"))
        self.lineEdit_2 = QtGui.QLineEdit(Dialog)
        self.lineEdit_2.setGeometry(QtCore.QRect(10, 80, 151, 20))
        self.lineEdit_2.setObjectName(_fromUtf8("lineEdit_2"))
        self.label = QtGui.QLabel(Dialog)
        self.label.setGeometry(QtCore.QRect(15, 10, 71, 20))
        self.label.setObjectName(_fromUtf8("label"))
        self.label_2 = QtGui.QLabel(Dialog)
        self.label_2.setGeometry(QtCore.QRect(10, 60, 61, 16))
        self.label_2.setObjectName(_fromUtf8("label_2"))
        self.pushButton_2 = QtGui.QPushButton(Dialog)
        self.pushButton_2.setGeometry(QtCore.QRect(510, 310, 75, 23))
        self.pushButton_2.setObjectName(_fromUtf8("pushButton_2"))
        self.pushButton_3 = QtGui.QPushButton(Dialog)
        self.pushButton_3.setGeometry(QtCore.QRect(430, 310, 75, 23))
        self.pushButton_3.setObjectName(_fromUtf8("pushButton_3"))

        self.retranslateUi(Dialog)
        QtCore.QMetaObject.connectSlotsByName(Dialog)

    def retranslateUi(self, Dialog):
        Dialog.setWindowTitle(_translate("Dialog", "Dialog", None))
        self.pushButton.setText(_translate("Dialog", "ENCONTRAR", None))
        self.label.setText(_translate("Dialog", "LATITUD:", None))
        self.label_2.setText(_translate("Dialog", "LONGITUD:", None))
        self.pushButton_2.setText(_translate("Dialog", "SALIR", None))
        self.pushButton_3.setText(_translate("Dialog", "REGRESAR", None))

from PyQt4 import QtWebKit

PASO 3: Crear una función que encuentre el punto en el mapa. Esta es una función creada apartir de Google Maps JavaScript API y modificada para ubicar el punto que deseamos (Recuerde que necesita tener un API KEY para reemplazarlo en el código y le pueda funcionar).

browser.py
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
def localizacion(lat, lon):
    latitud=str(lat)
    longitud=str(lon)
    html= \
"""
<!DOCTYPE html>
<html>
  <head>
    <meta name="viewport" content="initial-scale=1.0, user-scalable=no">
    <meta charset="utf-8">
    <title>Simple markers</title>
    <style>
      html, body {
        height: 100%;
        margin: 0;
        padding: 0;
      }
      #map {
        height: 100%;
      }
    </style>
  </head>
  <body>
    <div id="map"></div>
    <script>

function initMap() {
  var myLatLng = {lat: """+latitud+""" , lng: """+longitud+"""};

  var map = new google.maps.Map(document.getElementById('map'), {
    zoom: 10,
    center: myLatLng
  });

  var marker = new google.maps.Marker({
    position: myLatLng,
    map: map,
    title: 'Mapa Prueba!'
  });
}

    </script>
    <script async defer
        src="https://maps.googleapis.com/maps/api/js?key=YOUR_API_KEY&signed_in=true&callback=initMap"></script>
  </body>
</html>
"""
    return html

PASO 4: Crear el archivo ejecutable. 
codigo_mapa.py
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
#!/usr/bin/python
# -*- coding: utf-8 -*-
'''
Código creado por: Gibson Sneyder Ramírez Moreno
correo: sramirez.udea@gmail.com
http://pythoninicios.blogspot.com.co/
'''
import sys
from mapa import *
from PyQt4.QtGui import QApplication
from PyQt4.QtCore import QUrl
from PyQt4.QtWebKit import QWebView
import browser

class showmap(QtGui.QDialog):
    def __init__(self,parent=None):
        QtGui.QWidget.__init__(self,parent)
        QWebView.__init__(self)
        self.ui = Ui_Dialog()
        self.ui.setupUi(self)
              
        QtCore.QObject.connect(self.ui.pushButton, QtCore.SIGNAL('clicked()'),self.calcular)
        QtCore.QObject.connect(self.ui.pushButton_3, QtCore.SIGNAL('clicked()'),self.regresar)
        QtCore.QObject.connect(self.ui.pushButton_2, QtCore.SIGNAL('clicked()'),self.salir)

    def calcular(self):
        latitud=self.ui.lineEdit.text()
        longitud=self.ui.lineEdit_2.text()
        html=browser.localizacion(latitud,longitud)
        self.ui.webView.setHtml(html)
        
    def regresar(self):
        self.close()
        
    def salir(self):
        self.close()
        
if __name__== "__main__":
    app=QtGui.QApplication(sys.argv)
    myapp = showmap()
    myapp.show()
    sys.exit(app.exec_())

Al ejecutar, este es el resultado obtenido:


En este video podrás ver el funcionamiento:
 Muchas Gracias. Alguna duda la responderé con gusto.

martes, 9 de agosto de 2016

¿CÓMO VISUALIZAR IMÁGENES EN PYTHON-PYQT?

Hola en esta entrada voy a mostrar imágenes en una ventana creada para PyQT.

PASO 1: Crear la interfaz grafica: Con la aplicación QT se crea una nueva forma: Dialog without Buttons luego insertar un QWebView, como se muestra a continuación:

Este archivo lo guardé con el nombre de web.ui

PASO 2: Convertir la interfaz gráfica de QT a PyQT. Se obtiene el siguiente código:

web.py
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
# Form implementation generated from reading ui file 'web.ui'
#
# Created by: PyQt4 UI code generator 4.11.4
#
# WARNING! All changes made in this file will be lost!

from PyQt4 import QtCore, QtGui

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

try:
    _encoding = QtGui.QApplication.UnicodeUTF8
    def _translate(context, text, disambig):
        return QtGui.QApplication.translate(context, text, disambig, _encoding)
except AttributeError:
    def _translate(context, text, disambig):
        return QtGui.QApplication.translate(context, text, disambig)

class Ui_Dialog(object):
    def setupUi(self, Dialog):
        Dialog.setObjectName(_fromUtf8("Dialog"))
        Dialog.resize(452, 300)
        self.webView = QtWebKit.QWebView(Dialog)
        self.webView.setGeometry(QtCore.QRect(20, 10, 421, 281))
        self.webView.setUrl(QtCore.QUrl(_fromUtf8("about:blank")))
        self.webView.setObjectName(_fromUtf8("webView"))

        self.retranslateUi(Dialog)
        QtCore.QMetaObject.connectSlotsByName(Dialog)

    def retranslateUi(self, Dialog):
        Dialog.setWindowTitle(_translate("Dialog", "Dialog", None))

from PyQt4 import QtWebKit

PASO 3: Crear el código. Para este ejemplo voy a utilizar la dirección de enlace de la primera imagen del PASO 1 y y la insertamos en el siguiente código:

image.py
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
#!/usr/bin/python
# -*- coding: utf-8 -*-
'''
Código creado por: Gibson Sneyder Ramírez Moreno
correo: sramirez.udea@gmail.com
http://pythoninicios.blogspot.com.co/
'''
import sys
from web import *
from PyQt4.QtGui import QApplication
from PyQt4.QtCore import QUrl
from PyQt4.QtWebKit import QWebView

class imagen(QtGui.QDialog):
    def __init__(self,parent=None):
        QtGui.QWidget.__init__(self,parent)
        QWebView.__init__(self)
        self.ui = Ui_Dialog()
        self.ui.setupUi(self)

if __name__== "__main__":
    app=QtGui.QApplication(sys.argv)
    myapp = imagen()
    myapp.ui.webView.load(QUrl('https://i.imgur.com/TVJlJ1X.png?1'))
    myapp.show()
    sys.exit(app.exec_())

Este es el resultado:
Es todo. Muchas gracias, si tienen alguna duda con gusto la resolveré

lunes, 8 de agosto de 2016

¿CÓMO VISUALIZAR MAPA DE GOOGLE MAPS EN PYTHON-PYQT?

Hola a todos en esta entrada voy a visualizar mapas de Google Maps en Python-PyQT. Con la ayuda de Google Maps JavaScript API. La anterior ayuda permite visualizar mapas, insertar marcadores, eliminar marcadores.Etc..

En este caso voy a mostrar un marcador en nuestro mapa.

PASO 1: Crear la interfaz gráfica en QT. La cual consta de una forma Dialog Without Buttons y de un QWebView como se muestra a continuación:





PASO 2: Convertir la interfaz gráfica QT a PyQT.  Este paso ya lo hemos hecho en una entrada anterior de este BLOG pero si no lo recuerda acá les dejo el link:

http://pythoninicios.blogspot.com.co/2016/06/convertir-de-ui-py.html

PASO 3: Escoger el tipo de mapa. Como se mencionó anteriormente se va a escoger un mapa que nos muestre un marcador, y luego copiamos el código HTML del mapa para utilizarlo en nuestro Script de Python. Google Maps JavaScript API






PASO 4: Implementar el código. Este código sólo funcionará si tienen su API KEY, la pueden obtener gratuitamente AQUÍ. Cuando obtengan la suya simplemente la reemplazan en el código donde dice API_KEY la dejé con un buena tamaño para que puedan observar donde hacen el cambio.
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
#!/usr/bin/python
# -*- coding: utf-8 -*-
'''
Código creado por: Gibson Sneyder Ramírez Moreno
correo: sramirez.udea@gmail.com
http://pythoninicios.blogspot.com.co/
'''
import sys
from web import *
from PyQt4.QtGui import QApplication
from PyQt4.QtCore import QUrl
from PyQt4.QtWebKit import QWebView

html= \
"""
<!DOCTYPE html>
<html>
  <head>
    <meta name="viewport" content="initial-scale=1.0, user-scalable=no">
    <meta charset="utf-8">
    <title>Simple markers</title>
    <style>
      html, body {
        height: 100%;
        margin: 0;
        padding: 0;
      }
      #map {
        height: 100%;
      }
    </style>
  </head>
  <body>
    <div id="map"></div>
    <script>

function initMap() {
  var myLatLng = {lat: -25.363 , lng: 131.044 };

  var map = new google.maps.Map(document.getElementById('map'), {
    zoom: 4,
    center: myLatLng
  });

  var marker = new google.maps.Marker({
    position: myLatLng,
    map: map,
    title: 'Mapa Prueba!'
  });
}

    </script>
    <script async defer
        src="https://maps.googleapis.com/maps/api/js?key=API_KEY&signed_in=true&callback=initMap"></script>
  </body>
</html>
"""     

class FormularioLogin(QtGui.QDialog):
    def __init__(self,parent=None):
        QtGui.QWidget.__init__(self,parent)
        QWebView.__init__(self)
        self.ui = Ui_Dialog()
        self.ui.setupUi(self)
   
        
if __name__== "__main__":
    app=QtGui.QApplication(sys.argv)
    myapp = FormularioLogin()
    myapp.ui.webView.setHtml(html)
    myapp.show()
    sys.exit(app.exec_())

Después de hacer todos los pasos obtenemos lo siguiente:


Espero sea claro. Muchas gracias