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é

6 comentarios:

  1. disculpa como instalo la paqueteria de qwebView

    ResponderBorrar
    Respuestas
    1. Hola. Qué le aparece cuando corre el código?

      Borrar
    2. lo que pasa es que mi Qt, donde hago la GUI no tiene la herramienta qWebView, por eso le preguntaba como puedo instalar este complemento, ya seguí los pasos de la wiki de webkit pero no salio bien el procedimiento. no se si sabe que versión de qt o una forma fácil de instalar ese complemento.

      Borrar
    3. Instala una versión actualizada de Qt, con el que hice el ejercicio era versión PyQT 4.11.4

      Borrar
    4. Gracias, todo funciono perfecto, no tenia instalado pyQt, tenia qt y python por separado y no tenian esa opcion. pero ya todo esta perfecto. Gracias

      Borrar
  2. Con gusto, si tienes ejercicios para compartir en el blog y ayudar a hacerlo crecer, le agradecería.

    ResponderBorrar