Skip to content

Commit

Permalink
Merge pull request #490 from donalm/pyside2
Browse files Browse the repository at this point in the history
basic PySide2 support in examples/qt.py #438
  • Loading branch information
cztomczak authored Nov 14, 2018
2 parents ce21ff9 + cdf6c23 commit a9a30ae
Showing 1 changed file with 22 additions and 3 deletions.
25 changes: 22 additions & 3 deletions examples/qt.py
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,7 @@
PYQT4 = False
PYQT5 = False
PYSIDE = False
PYSIDE2 = False

if "pyqt4" in sys.argv:
PYQT4 = True
Expand All @@ -47,11 +48,24 @@
from PySide.QtGui import *
# noinspection PyUnresolvedReferences
from PySide.QtCore import *
elif "pyside2" in sys.argv:
PYSIDE2 = True
# noinspection PyUnresolvedReferences
import PySide2
# noinspection PyUnresolvedReferences
from PySide2 import QtCore
# noinspection PyUnresolvedReferences
from PySide2.QtGui import *
# noinspection PyUnresolvedReferences
from PySide2.QtCore import *
# noinspection PyUnresolvedReferences
from PySide2.QtWidgets import *
else:
print("USAGE:")
print(" qt.py pyqt4")
print(" qt.py pyqt5")
print(" qt.py pyside")
print(" qt.py pyside2")
sys.exit(1)

# Fix for PyCharm hints warnings when using static methods
Expand Down Expand Up @@ -107,6 +121,9 @@ def check_versions():
elif PYSIDE:
print("[qt.py] PySide {v1} (qt {v2})".format(
v1=PySide.__version__, v2=QtCore.__version__))
elif PYSIDE2:
print("[qt.py] PySide2 {v1} (qt {v2})".format(
v1=PySide2.__version__, v2=QtCore.__version__))
# CEF Python version requirement
assert cef.__version__ >= "55.4", "CEF Python v55.4+ required to run this"

Expand All @@ -126,6 +143,8 @@ def __init__(self):
self.setWindowTitle("PyQt5 example")
elif PYSIDE:
self.setWindowTitle("PySide example")
elif PYSIDE2:
self.setWindowTitle("PySide2 example")
self.setFocusPolicy(Qt.StrongFocus)
self.setupLayout()

Expand All @@ -147,7 +166,7 @@ def setupLayout(self):
frame.setLayout(layout)
self.setCentralWidget(frame)

if PYQT5 and WINDOWS:
if (PYSIDE2 or PYQT5) and WINDOWS:
# On Windows with PyQt5 main window must be shown first
# before CEF browser is embedded, otherwise window is
# not resized and application hangs during resize.
Expand All @@ -156,7 +175,7 @@ def setupLayout(self):
# Browser can be embedded only after layout was set up
self.cef_widget.embedBrowser()

if PYQT5 and LINUX:
if (PYSIDE2 or PYQT5) and LINUX:
# On Linux with PyQt5 the QX11EmbedContainer widget is
# no more available. An equivalent in Qt5 is to create
# a hidden window, embed CEF browser in it and then
Expand Down Expand Up @@ -204,7 +223,7 @@ def focusOutEvent(self, event):
self.browser.SetFocus(False)

def embedBrowser(self):
if PYQT5 and LINUX:
if (PYSIDE2 or PYQT5) and LINUX:
# noinspection PyUnresolvedReferences
self.hidden_window = QWindow()
window_info = cef.WindowInfo()
Expand Down

0 comments on commit a9a30ae

Please sign in to comment.