python - pqt5 - tutorials point pyqt
Abra varias páginas web con diferentes parámetros. PyQt4 (1)
Hay un par de cosas en ese código :) revisa esta versión de trabajo y mira cómo puedes adaptarla a la tuya:
#!/usr/bin/env python
from PyQt4.QtCore import *
from PyQt4.QtGui import*
from PyQt4.QtWebKit import *
class Foo(QWidget):
def __init__(self, parent=None):
super(Foo, self).__init__(parent)
self.count = 0
self.params = range(4)
self.url = ''http://forums.fedoraforum.org/showthread.php?t={0}''
self.gridLayout = QGridLayout(self)
self.tabWidget = QTabWidget(self)
self.gridLayout.addWidget(self.tabWidget, 0, 0, 1, 1)
self.mapper = QSignalMapper(self)
self.mapper.mapped.connect(self.on_mapper_mapped)
for i in range(2):
grabber = QWebView()
grabber.loadFinished.connect(self.mapper.map)
self.mapper.setMapping(grabber, i)
self.tabWidget.addTab(grabber, "opener {0}".format(str(i)))
grabber.loadFinished.emit(True)
@pyqtSlot(int)
def on_mapper_mapped(self, gNumber):
self.count += 1
if self.count < len(self.params):
gParam = self.params[self.count]
opener = self.mapper.mapping(gNumber)
opener.load(QUrl(self.url.format(gParam)))
if __name__ == "__main__":
import sys
app = QApplication(sys.argv)
main = Foo()
main.show()
app.exec_()
He seguido la respuesta de X.Jacobs en esta pregunta , y estaba intentando crear una aplicación que abrirá varias ventanas con diferentes parámetros, pero no funciona, parece que la aplicación está abriendo ventanas, pero no carga la página web.
#! /usr/bin/env python2.7
from PyQt4.QtCore import *
from PyQt4.QtGui import*
from PyQt4.QtWebKit import *
import sys, signal
url = ''http://http://forums.fedoraforum.org/showthread.php?t={0}''
class Opener(QWebView):
def __init__(self, param=None):
QWebView.__init__(self)
self.param = param
self.loadFinished.connect(self.print_title)
def print_title(self):
print self.title()
class Foo(QObject):
def __init__(self):
QObject.__init__(self)
self.count = 0
self.params = range(4)
self.mapper = QSignalMapper(self)
self.mapper.mapped.connect(self.mapper_mapped)
for i in range(2):
opener = Opener()
opener.loadFinished.connect(self.mapper.map)
self.mapper.setMapping(opener, i)
opener.loadFinished.emit(True)
QTimer.singleShot(1, lambda:opener.loadFinished.emit(True))
def mapper_mapped(self, gNumber):
self.count += 1
if self.count < len(self.params):
gParam = self.params[self.count]
opener = self.mapper.mapping(gNumber)
opener.load(QUrl(url.format(gParam)))
opener.show()
QTimer.singleShot(1, lambda:opener.loadFinished.emit(True))
if __name__ == "__main__":
app = QApplication(sys.argv)
main = Foo()
if signal.signal(signal.SIGINT, signal.SIG_DFL):
sys.exit(app.exec_())
app_exec_()