elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Guía actualizada para evitar que un ransomware ataque tu empresa


+  Foro de elhacker.net
|-+  Programación
| |-+  Python (Moderador: Danielㅤ)
| | |-+  [Python + QT4] Problema con barra de navegador hecho con python y QT4
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: [Python + QT4] Problema con barra de navegador hecho con python y QT4  (Leído 3,445 veces)
darkweb64

Desconectado Desconectado

Mensajes: 17



Ver Perfil
[Python + QT4] Problema con barra de navegador hecho con python y QT4
« en: 9 Mayo 2015, 00:47 am »

Me pueden ayudar con el código de este navegador, me gustaría que la página fuera fija y no pueda cambiarse por otra o que en su defecto se oculte la página del la barra de navegación.


Código
  1. import sys, re
  2. from PyQt4 import QtGui, QtCore, QtWebKit
  3.  
  4. class PyBrowser(QtGui.QWidget):
  5.  
  6.    def __init__(self):
  7.        QtGui.QWidget.__init__(self)
  8.        self.setWindowTitle('Simple Web Browser')
  9.  
  10.        v_box = QtGui.QVBoxLayout(self)
  11.        #Bar
  12.        h_bar = QtGui.QHBoxLayout()
  13.        self.previous = QtGui.QPushButton(self.style().standardIcon(QtGui.QStyle.SP_ArrowLeft), '')
  14.        self.next = QtGui.QPushButton(self.style().standardIcon(QtGui.QStyle.SP_ArrowRight), '')
  15.        self.refresh = QtGui.QPushButton(self.style().standardIcon(QtGui.QStyle.SP_BrowserReload), '')
  16.        self.stop = QtGui.QPushButton(self.style().standardIcon(QtGui.QStyle.SP_BrowserStop), '')
  17.        self.url = QtGui.QLineEdit('')
  18.        self.url.setFixedWidth(550)
  19.        self.okUrl = QtGui.QPushButton(self.style().standardIcon(QtGui.QStyle.SP_DialogOkButton), '')
  20.        self.okUrl.setFlat(True)
  21.        h_bar.addWidget(self.previous)
  22.        h_bar.addWidget(self.next)
  23.        h_bar.addWidget(self.refresh)
  24.        h_bar.addWidget(self.stop)
  25.        h_bar.addWidget(self.url)
  26.        h_bar.addWidget(self.okUrl)
  27.        #Page Frame
  28.        self.web = QtWebKit.QWebView()
  29.        self.web.load(QtCore.QUrl('http://www.google.com'))
  30.        #Status Bar
  31.        self.status = QtGui.QStatusBar()
  32.        self.prog = QtGui.QProgressBar()
  33.        self.load = QtGui.QLabel('Loading...')
  34.        self.status.addWidget(self.load)
  35.        self.status.addWidget(self.prog)
  36.  
  37.        #Add widgets and layout to window
  38.        v_box.addLayout(h_bar)
  39.        v_box.addWidget(self.web)
  40.        v_box.addWidget(self.status)
  41.        #Shortcut
  42.        self.short = QtGui.QShortcut(QtGui.QKeySequence(QtCore.Qt.CTRL + QtCore.Qt.Key_J), self.url)
  43.  
  44.        self.connect(self.previous, QtCore.SIGNAL("clicked()"), self.web.back)
  45.        self.connect(self.next, QtCore.SIGNAL("clicked()"), self.web.forward)
  46.        self.connect(self.refresh, QtCore.SIGNAL("clicked()"), self.web.reload)
  47.        self.connect(self.stop, QtCore.SIGNAL("clicked()"), self.web.stop)
  48.        self.connect(self.url, QtCore.SIGNAL("returnPressed()"), self.doSearch)
  49.        self.connect(self.okUrl, QtCore.SIGNAL("clicked()"), self.doSearch)
  50.        self.connect(self.web, QtCore.SIGNAL("loadProgress(int)"), self.progress)
  51.        self.connect(self.web, QtCore.SIGNAL("loadFinished(bool)"), self.loadComplete)
  52.        self.connect(self.web, QtCore.SIGNAL("loadStarted()"), self.status.show)
  53.        self.connect(self.short, QtCore.SIGNAL("activated()"), self.url.setFocus)
  54.  
  55.    def progress(self, porc):
  56.        self.prog.setValue(porc)
  57.  
  58.    def openUrl(self, text):
  59.        self.web.setFocus()
  60.        self.web.load(QtCore.QUrl(text))
  61.  
  62.    def doSearch(self):
  63.        link = self.url.text()
  64.        pat = re.compile('(.+)\\.(.+)')
  65.        patHttp = re.compile('^http://')
  66.        if pat.match(link) and not patHttp.match(link):
  67.            link = 'http://' + link
  68.        elif not pat.match(link):
  69.            link = 'http://www.google.com/search?q=' + link.replace(' ', '+')
  70.        self.openUrl(link)
  71.  
  72.    def loadComplete(self):
  73.        self.url.setText(self.web.url().toString())
  74.        self.status.hide()
  75.  
  76.  
  77. app = QtGui.QApplication(sys.argv)
  78. pybrowser = PyBrowser()
  79. pybrowser.show()
  80.  
  81. sys.exit(app.exec_())
  82.  


En línea

Eleкtro
Ex-Staff
*
Desconectado Desconectado

Mensajes: 9.885



Ver Perfil
Re: [Python + QT4] Problema con barra de navegador hecho con python y QT4
« Respuesta #1 en: 9 Mayo 2015, 01:11 am »

me gustaría que la página fuera fija y no pueda cambiarse por otra

No manejo PyQT, pero leyendo la documentación de QT encontré la señal/evento urlChanged:
void QWebView::urlChanged(const QUrl & url) [signal]

La idea sería que al emitirse esa señal reestablezcas la url por defecto y así poder mantenerla "fija".

Saludos.


« Última modificación: 9 Mayo 2015, 01:16 am por Eleкtro » En línea



0x5d

Desconectado Desconectado

Mensajes: 241



Ver Perfil WWW
Re: [Python + QT4] Problema con barra de navegador hecho con python y QT4
« Respuesta #2 en: 15 Mayo 2015, 07:03 am »

Hola, buen día.

No entiendo para que tienes una barra de direcciones si quieres tener una página fija. Mejor solo carga la url que quieres y elimina el QLineEdit de la URL.

Saludos.
En línea

darkweb64

Desconectado Desconectado

Mensajes: 17



Ver Perfil
Re: [Python + QT4] Problema con barra de navegador hecho con python y QT4
« Respuesta #3 en: 18 Mayo 2015, 17:23 pm »

si hago eso meda el siguiente error:

En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
[SOURCE] Cortador de Archivos hecho en Python! « 1 2 »
Scripting
Shrick 10 9,495 Último mensaje 13 Julio 2009, 20:58 pm
por Anibal784
[SOURCE] Joiner hecho en Python!
Scripting
Shrick 2 3,362 Último mensaje 11 Julio 2008, 17:07 pm
por Shrick
[SOURCE] Camuflador hecho en Python!
Scripting
Shrick 0 2,255 Último mensaje 29 Julio 2008, 01:36 am
por Shrick
Enviar un programa hecho en Python
Scripting
Lavacaloca 4 4,383 Último mensaje 14 Mayo 2011, 01:55 am
por Lavacaloca
[Python 3]Problema con excepciones en Python
Python
n1sen 2 3,821 Último mensaje 18 Diciembre 2017, 17:51 pm
por JoseluCross
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines