From f7b4ac3a210e22495216fb51ad3fdd4d0afe04ad Mon Sep 17 00:00:00 2001 From: Daniel Pizetta Date: Thu, 25 Oct 2018 00:24:06 -0300 Subject: [PATCH] Fix support to pyside2 and exception when compilers not found --- script/process_qrc.py | 33 ++++++++++++++++++++++++++++----- script/process_ui.py | 26 ++++++++++++++++++++++---- 2 files changed, 50 insertions(+), 9 deletions(-) diff --git a/script/process_qrc.py b/script/process_qrc.py index 6ee847fe3..1f282db09 100755 --- a/script/process_qrc.py +++ b/script/process_qrc.py @@ -6,6 +6,7 @@ The script will attempt to compile the qrc file using the following tools: - pyrcc4 for PyQt4 and PyQtGraph (Python) - pyrcc5 for PyQt5 and QtPy (Python) - pyside-rcc for PySide (Python) + - pyside2-rcc for PySide2 (Python) - rcc for Qt4 and Qt5 (C++) Delete the compiled files that you don't want to use manually after @@ -16,6 +17,7 @@ Links to understand those tools: - pyrcc4: http://pyqt.sourceforge.net/Docs/PyQt4/resources.html#pyrcc4 - pyrcc5: http://pyqt.sourceforge.net/Docs/PyQt5/resources.html#pyrcc5 - pyside-rcc: https://www.mankier.com/1/pyside-rcc + - pyside2-rcc: https://doc.qt.io/qtforpython/overviews/resources.html (Documentation Incomplete) - rcc on Qt4: http://doc.qt.io/archives/qt-4.8/rcc.html - rcc on Qt5: http://doc.qt.io/qt-5/rcc.html @@ -40,7 +42,7 @@ def main(arguments): help="QRC file directory, relative to current directory.",) parser.add_argument('--create', default='all', - choices=['pyqt', 'pyqt5', 'pyside', 'qtpy', 'pyqtgraph', 'qt', 'qt5', 'all'], + choices=['pyqt', 'pyqt5', 'pyside', 'pyside2', 'qtpy', 'pyqtgraph', 'qt', 'qt5', 'all'], type=str, help="Choose which one would be generated.") @@ -63,21 +65,41 @@ def main(arguments): py_file_pyqt5 = 'pyqt5_' + filename + ext py_file_pyqt = 'pyqt_' + filename + ext py_file_pyside = 'pyside_' + filename + ext + py_file_pyside2 = 'pyside2_' + filename + ext py_file_qtpy = 'qtpy_' + filename + ext py_file_pyqtgraph = 'pyqtgraph_' + filename + ext # calling external commands if args.create in ['pyqt', 'pyqtgraph', 'all']: - call(['pyrcc4', '-py3', qrc_file, '-o', py_file_pyqt]) + print("Compiling for PyQt4 ...") + try: + call(['pyrcc4', '-py3', qrc_file, '-o', py_file_pyqt]) + except FileNotFoundError: + print("You must install pyrcc4") if args.create in ['pyqt5', 'qtpy', 'all']: - call(['pyrcc5', qrc_file, '-o', py_file_pyqt5]) + print("Compiling for PyQt5 ...") + try: + call(['pyrcc5', qrc_file, '-o', py_file_pyqt5]) + except FileNotFoundError: + print("You must install pyrcc5") if args.create in ['pyside', 'all']: - call(['pyside-rcc', '-py3', qrc_file, '-o', py_file_pyside]) + print("Compiling for PySide ...") + try: + call(['pyside-rcc', '-py3', qrc_file, '-o', py_file_pyside]) + except FileNotFoundError: + print("You must install pyside-rcc") + + if args.create in ['pyside2', 'all']: + print("Compiling for PySide 2...") + try: + call(['pyside2-rcc', '-py3', qrc_file, '-o', py_file_pyside2]) + except FileNotFoundError: + print("You must install pyside2-rcc") if args.create in ['qtpy', 'all']: - print("Compiling for PySide ...") + print("Compiling for QtPy ...") # special case - qtpy - syntax is PyQt5 with open(py_file_pyqt5, 'r') as file: filedata = file.read() @@ -88,6 +110,7 @@ def main(arguments): file.write(filedata) if args.create in ['pyqtgraph', 'all']: + print("Compiling for PyQtGraph ...") # special case - pyqtgraph - syntax is PyQt4 with open(py_file_pyqt, 'r') as file: filedata = file.read() diff --git a/script/process_ui.py b/script/process_ui.py index 9f3fbb7d4..90e514d31 100755 --- a/script/process_ui.py +++ b/script/process_ui.py @@ -9,12 +9,14 @@ To run this script you need to have these tools available on system: - pyuic4 for PyQt4 and PyQtGraph - pyuic5 for PyQt5 and QtPy - pyside-uic for Pyside + - pyside2-uic for Pyside2 Links to understand those tools: - pyuic4: http://pyqt.sourceforge.net/Docs/PyQt4/designer.html#pyuic4 - pyuic5: http://pyqt.sourceforge.net/Docs/PyQt5/designer.html#pyuic5 - pyside-uic: https://www.mankier.com/1/pyside-uic + - pyside2-uic: https://wiki.qt.io/Qt_for_Python_UiFiles (Documentation Incomplete) """ @@ -37,7 +39,7 @@ def main(arguments): help="UI files directory, relative to current directory.",) parser.add_argument('--create', default='all', - choices=['pyqt', 'pyqt5', 'pyside', 'qtpy', 'pyqtgraph', 'all'], + choices=['pyqt', 'pyqt5', 'pyside', 'pyside2', 'qtpy', 'pyqtgraph', 'all'], type=str, help="Choose which one would be generated.") @@ -58,18 +60,34 @@ def main(arguments): py_file_pyqt5 = filename + '_pyqt5_ui' + ext py_file_pyqt = filename + '_pyqt_ui' + ext py_file_pyside = filename + '_pyside_ui' + ext + py_file_pyside2 = filename + '_pyside2_ui' + ext py_file_qtpy = filename + '_qtpy_ui' + ext py_file_pyqtgraph = filename + '_pyqtgraph_ui' + ext # calling external commands if args.create in ['pyqt', 'pyqtgraph', 'all']: - call(['pyuic4', '--from-imports', ui_file, '-o', py_file_pyqt]) + try: + call(['pyuic4', '--from-imports', ui_file, '-o', py_file_pyqt]) + except FileNotFoundError: + print("You must install pyuic4") if args.create in ['pyqt5', 'qtpy', 'all']: - call(['pyuic5', '--from-imports', ui_file, '-o', py_file_pyqt5]) + try: + call(['pyuic5', '--from-imports', ui_file, '-o', py_file_pyqt5]) + except FileNotFoundError: + print("You must install pyuic5") if args.create in ['pyside', 'all']: - call(['pyside-uic', '--from-imports', ui_file, '-o', py_file_pyside]) + try: + call(['pyside-uic', '--from-imports', ui_file, '-o', py_file_pyside]) + except FileNotFoundError: + print("You must install pyside-uic") + + if args.create in ['pyside2', 'all']: + try: + call(['pyside2-uic', '--from-imports', ui_file, '-o', py_file_pyside2]) + except FileNotFoundError: + print("You must install pyside2-uic") if args.create in ['qtpy', 'all']: print("Compiling for PySide ...")