Skip to content

Commit e0c829b

Browse files
committed
added pyqt5
1 parent 1a72744 commit e0c829b

File tree

1 file changed

+39
-11
lines changed

1 file changed

+39
-11
lines changed

ghost/ghost.py

100755100644
Lines changed: 39 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -22,14 +22,14 @@
2222
long = int
2323

2424

25-
bindings = ["PySide", "PyQt4"]
25+
bindings = ["PySide", "PyQt4", "PyQt5"]
2626
binding = None
2727

2828

2929
for name in bindings:
3030
try:
3131
binding = __import__(name)
32-
if name == 'PyQt4':
32+
if name.startswith('PyQt'):
3333
import sip
3434
sip.setapi('QVariant', 2)
3535

@@ -66,14 +66,33 @@ def _import(name):
6666
QtDebugMsg = QtCore.QtDebugMsg
6767
QtFatalMsg = QtCore.QtFatalMsg
6868
QtWarningMsg = QtCore.QtWarningMsg
69-
qInstallMsgHandler = QtCore.qInstallMsgHandler
69+
if name == "PyQt5":
70+
71+
qInstallMsgHandler = QtCore.qInstallMessageHandler
72+
73+
else:
74+
75+
qInstallMsgHandler = QtCore.qInstallMsgHandler
7076

7177
QtGui = _import("QtGui")
72-
QApplication = QtGui.QApplication
73-
QImage = QtGui.QImage
74-
QPainter = QtGui.QPainter
75-
QPrinter = QtGui.QPrinter
76-
QRegion = QtGui.QRegion
78+
if name == "PyQt5":
79+
80+
QtWidgets = _import("QtWidgets")
81+
QtPrintSupport = _import("QtPrintSupport")
82+
83+
QApplication = QtWidgets.QApplication
84+
QImage = QtGui.QImage
85+
QPainter = QtGui.QPainter
86+
QPrinter = QtPrintSupport.QPrinter
87+
QRegion = QtGui.QRegion
88+
89+
else:
90+
91+
QApplication = QtGui.QApplication
92+
QImage = QtGui.QImage
93+
QPainter = QtGui.QPainter
94+
QPrinter = QtGui.QPrinter
95+
QRegion = QtGui.QRegion
7796

7897
QtNetwork = _import("QtNetwork")
7998
QNetworkRequest = QtNetwork.QNetworkRequest
@@ -85,7 +104,16 @@ def _import(name):
85104
QSsl = QtNetwork.QSsl
86105

87106
QtWebKit = _import('QtWebKit')
107+
if name == "PyQt5":
108+
109+
QtWebKitWidgets = _import("QtWebKitWidgets")
110+
QWebPage = QtWebKitWidgets.QWebPage
111+
QWebView = QtWebKitWidgets.QWebView
112+
113+
else:
88114

115+
QWebPage = QtWebKit.QWebPage
116+
QWebView = QtWebKit.QWebView
89117

90118
default_user_agent = "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/535.2 " +\
91119
"(KHTML, like Gecko) Chrome/15.0.874.121 Safari/535.2"
@@ -115,7 +143,7 @@ def __call__(self, msgType, msg):
115143
getattr(self.logger, levels[msgType])(msg)
116144

117145

118-
class GhostWebPage(QtWebKit.QWebPage):
146+
class GhostWebPage(QWebPage):
119147
"""Overrides QtWebKit.QWebPage in order to intercept some graphical
120148
behaviours like alert(), confirm().
121149
Also intercepts client side console.log().
@@ -419,7 +447,7 @@ def __init__(
419447

420448
self.main_frame = self.page.mainFrame()
421449

422-
class GhostQWebView(QtWebKit.QWebView):
450+
class GhostQWebView(QWebView):
423451
def sizeHint(self):
424452
return QSize(*viewport_size)
425453

@@ -572,7 +600,7 @@ def print_to_pdf(
572600
printer.setFullPage(True)
573601
printer.setOutputFileName(path)
574602
if self.webview is None:
575-
self.webview = QtWebKit.QWebView()
603+
self.webview = QWebView()
576604
self.webview.setPage(self.page)
577605
self.webview.setZoomFactor(zoom_factor)
578606
self.webview.print_(printer)

0 commit comments

Comments
 (0)