diff --git a/configs/sim/qtvcp_screens/qtaxis_lathe/qtaxis/qtaxis_handler.py b/configs/sim/qtvcp_screens/qtaxis_lathe/qtaxis/qtaxis_handler.py index ffb74613d8c..66e6887f840 100644 --- a/configs/sim/qtvcp_screens/qtaxis_lathe/qtaxis/qtaxis_handler.py +++ b/configs/sim/qtvcp_screens/qtaxis_lathe/qtaxis/qtaxis_handler.py @@ -5,8 +5,8 @@ import os import linuxcnc -from PyQt5 import QtCore, QtWidgets -from PyQt5.QtGui import QColor +from qtpy import QtCore, QtWidgets +from qtpy.QtGui import QColor from qtvcp.widgets.mdi_line import MDILine as MDI_WIDGET from qtvcp.widgets.gcode_editor import GcodeEditor as GCODE diff --git a/configs/sim/qtvcp_screens/qtdragon/qtvcp/screens/qtdragon/qtdragon_handler.py b/configs/sim/qtvcp_screens/qtdragon/qtvcp/screens/qtdragon/qtdragon_handler.py index 1c039fe8544..a264f75177a 100644 --- a/configs/sim/qtvcp_screens/qtdragon/qtvcp/screens/qtdragon/qtdragon_handler.py +++ b/configs/sim/qtvcp_screens/qtdragon/qtvcp/screens/qtdragon/qtdragon_handler.py @@ -1,5 +1,5 @@ import os, time -from PyQt5 import QtCore, QtWidgets, QtGui +from qtpy import QtCore, QtWidgets, QtGui from qtvcp.widgets.gcode_editor import GcodeEditor as GCODE from qtvcp.widgets.gcode_graphics import GCodeGraphics as GRAPHICS from qtvcp.widgets.mdi_line import MDILine as MDI_WIDGET @@ -28,7 +28,7 @@ QHAL = Qhal() try: - from PyQt5.QtWebEngineWidgets import QWebEnginePage + from qtpy.QtWebEngineWidgets import QWebEnginePage except: LOG.warning('QtDragon Warning with loading QtWebEngineWidget - is python3-pyqt5.qtwebengine installed?') diff --git a/configs/sim/qtvcp_screens/qtvcp_custom/qtdefault_ngc/qtdefault_ngc_handler.py b/configs/sim/qtvcp_screens/qtvcp_custom/qtdefault_ngc/qtdefault_ngc_handler.py index 39cfe032b00..dc0eb60ccbb 100644 --- a/configs/sim/qtvcp_screens/qtvcp_custom/qtdefault_ngc/qtdefault_ngc_handler.py +++ b/configs/sim/qtvcp_screens/qtvcp_custom/qtdefault_ngc/qtdefault_ngc_handler.py @@ -2,8 +2,8 @@ # **** IMPORT SECTION **** # ############################ -from PyQt5 import QtCore -from PyQt5 import QtWidgets +from qtpy import QtCore +from qtpy import QtWidgets from qtvcp.widgets.origin_offsetview import OriginOffsetView as OFFVIEW_WIDGET from qtvcp.widgets.tool_offsetview import ToolOffsetView as TOOLVIEW_WIDGET from qtvcp.widgets.dialog_widget import CamViewDialog as CAMVIEW diff --git a/configs/sim/qtvcp_screens/qtvcp_experimental/qtdefault_gladevcp/qtdefault_gladevcp_handler.py b/configs/sim/qtvcp_screens/qtvcp_experimental/qtdefault_gladevcp/qtdefault_gladevcp_handler.py index 7a0d56703e7..a38ef1c74fe 100644 --- a/configs/sim/qtvcp_screens/qtvcp_experimental/qtdefault_gladevcp/qtdefault_gladevcp_handler.py +++ b/configs/sim/qtvcp_screens/qtvcp_experimental/qtdefault_gladevcp/qtdefault_gladevcp_handler.py @@ -2,7 +2,7 @@ # **** IMPORT SECTION **** # ############################ -from PyQt5 import QtCore, QtWidgets +from qtpy import QtCore, QtWidgets from qtvcp.widgets.origin_offsetview import OriginOffsetView as OFFVIEW_WIDGET from qtvcp.widgets.dialog_widget import CamViewDialog as CAMVIEW from qtvcp.widgets.dialog_widget import MacroTabDialog as LATHEMACRO diff --git a/configs/sim/qtvcp_screens/qtvcp_experimental/qtdefault_gladevcp_handler.py b/configs/sim/qtvcp_screens/qtvcp_experimental/qtdefault_gladevcp_handler.py index c9fc29b5e09..844b780922a 100644 --- a/configs/sim/qtvcp_screens/qtvcp_experimental/qtdefault_gladevcp_handler.py +++ b/configs/sim/qtvcp_screens/qtvcp_experimental/qtdefault_gladevcp_handler.py @@ -5,7 +5,7 @@ import os import linuxcnc -from PyQt5 import QtCore, QtWidgets +from qtpy import QtCore, QtWidgets from qtvcp.widgets.mdi_line import MDILine as MDI_WIDGET from qtvcp.widgets.gcode_editor import GcodeEditor as GCODE diff --git a/configs/sim/qtvcp_screens/qtvcp_experimental/qtdefault_gladevcp_handler_1.py b/configs/sim/qtvcp_screens/qtvcp_experimental/qtdefault_gladevcp_handler_1.py index 711f569c8a3..e5fbccc36aa 100644 --- a/configs/sim/qtvcp_screens/qtvcp_experimental/qtdefault_gladevcp_handler_1.py +++ b/configs/sim/qtvcp_screens/qtvcp_experimental/qtdefault_gladevcp_handler_1.py @@ -2,8 +2,8 @@ # **** IMPORT SECTION **** # ############################ -from PyQt5 import QtCore -from PyQt5 import QtWidgets +from qtpy import QtCore +from qtpy import QtWidgets from qtvcp.widgets.origin_offsetview import OriginOffsetView as OFFVIEW_WIDGET from qtvcp.widgets.tool_offsetview import ToolOffsetView as TOOLVIEW_WIDGET from qtvcp.widgets.dialog_widget import CamViewDialog as CAMVIEW diff --git a/configs/sim/qtvcp_screens/qtvcp_experimental/qtdefault_ngc/qtdefault_ngc_handler.py b/configs/sim/qtvcp_screens/qtvcp_experimental/qtdefault_ngc/qtdefault_ngc_handler.py index 5e57576f90d..411bb61dec9 100644 --- a/configs/sim/qtvcp_screens/qtvcp_experimental/qtdefault_ngc/qtdefault_ngc_handler.py +++ b/configs/sim/qtvcp_screens/qtvcp_experimental/qtdefault_ngc/qtdefault_ngc_handler.py @@ -2,8 +2,8 @@ # **** IMPORT SECTION **** # ############################ -from PyQt5 import QtCore -from PyQt5 import QtWidgets +from qtpy import QtCore +from qtpy import QtWidgets from qtvcp.widgets.origin_offsetview import OriginOffsetView as OFFVIEW_WIDGET from qtvcp.widgets.tool_offsetview import ToolOffsetView as TOOLVIEW_WIDGET from qtvcp.widgets.dialog_widget import CamViewDialog as CAMVIEW diff --git a/configs/sim/woodpecker/1280x1024_5axis/woodpecker_handler.py b/configs/sim/woodpecker/1280x1024_5axis/woodpecker_handler.py index 48d63a6f441..b0c823d4c24 100644 --- a/configs/sim/woodpecker/1280x1024_5axis/woodpecker_handler.py +++ b/configs/sim/woodpecker/1280x1024_5axis/woodpecker_handler.py @@ -2,10 +2,10 @@ import linuxcnc import hal import sys -from PyQt5.QtWidgets import QMessageBox -from PyQt5 import QtCore, QtWidgets, QtGui, uic +from qtpy.QtWidgets import QMessageBox +from qtpy import QtCore, QtWidgets, QtGui, uic try: - from PyQt5.QtWebKitWidgets import QWebView + from qtpy.QtWebKitWidgets import QWebView except ImportError: raise Exception("Qtvcp error with woodpecker - is package python-pyqt5.qtwebkit installed?") from qtvcp.widgets.gcode_editor import GcodeEditor as GCODE diff --git a/configs/sim/woodpecker/compensate.py b/configs/sim/woodpecker/compensate.py index 85563cd67c1..1c3bdbe3f5a 100755 --- a/configs/sim/woodpecker/compensate.py +++ b/configs/sim/woodpecker/compensate.py @@ -21,7 +21,7 @@ import time import linuxcnc import hal -from PyQt5 import QtGui, QtWidgets +from qtpy import QtGui, QtWidgets import numpy as np import matplotlib.pyplot as plt import matplotlib.cm as cm diff --git a/configs/sim/woodpecker/qtvcp/screens/woodpecker/resources.py b/configs/sim/woodpecker/qtvcp/screens/woodpecker/resources.py index a4239d4f6a0..f23e27ebfe4 100644 --- a/configs/sim/woodpecker/qtvcp/screens/woodpecker/resources.py +++ b/configs/sim/woodpecker/qtvcp/screens/woodpecker/resources.py @@ -6,7 +6,7 @@ # # WARNING! All changes made in this file will be lost! -from PyQt5 import QtCore +from qtpy import QtCore qt_resource_data = b"\ \x00\x00\x08\x28\ diff --git a/configs/sim/woodpecker/woodpecker_/woodpecker_handler.py b/configs/sim/woodpecker/woodpecker_/woodpecker_handler.py index 0b3f28b128f..d0d343a8ddd 100644 --- a/configs/sim/woodpecker/woodpecker_/woodpecker_handler.py +++ b/configs/sim/woodpecker/woodpecker_/woodpecker_handler.py @@ -2,7 +2,7 @@ import linuxcnc import hal import time -from PyQt5 import QtCore, QtWidgets, QtGui +from qtpy import QtCore, QtWidgets, QtGui from qtvcp.widgets.gcode_editor import GcodeEditor as GCODE from qtvcp.widgets.mdi_line import MDILine as MDI_WIDGET from qtvcp.widgets.tool_offsetview import ToolOffsetView as TOOL_TABLE diff --git a/configs/sim/woodpecker/zlevel.py b/configs/sim/woodpecker/zlevel.py index b7eb9ab5669..5395b329e8f 100644 --- a/configs/sim/woodpecker/zlevel.py +++ b/configs/sim/woodpecker/zlevel.py @@ -5,9 +5,9 @@ import atexit import shutil -from PyQt5 import QtCore, QtGui, QtWidgets, uic -from PyQt5.QtCore import QFile -from PyQt5.QtWidgets import QFileDialog +from qtpy import QtCore, QtGui, QtWidgets, uic +from qtpy.QtCore import QFile +from qtpy.QtWidgets import QFileDialog #from linuxcnc import OPERATOR_ERROR, NML_ERROR from qtvcp.core import Status, Action, Info diff --git a/debian/configure b/debian/configure index 044e61f2391..495d1646d53 100755 --- a/debian/configure +++ b/debian/configure @@ -134,7 +134,7 @@ PYTHON_GST=python3-gst-1.0,gstreamer1.0-plugins-base TCLTK_VERSION=8.6 PYTHON_IMAGING=python3-pil PYTHON_IMAGING_TK=python3-pil.imagetk -QTVCP_DEPENDS="python3-pyqt5,\n python3-pyqt5.qsci,\n python3-pyqt5.qtsvg,\n python3-pyqt5.qtopengl,\n python3-opencv,\n python3-dbus,\n python3-espeak,\n python3-dbus.mainloop.pyqt5,\n python3-pyqt5.qtwebengine,\n espeak-ng,\n pyqt5-dev-tools,\n gstreamer1.0-tools,\n espeak,\n sound-theme-freedesktop,\n python3-poppler-qt5" +QTVCP_DEPENDS="python3-qtpy,\n python3-pyqt5,\n python3-pyqt5.qsci,\n python3-pyqt5.qtsvg,\n python3-pyqt5.qtopengl,\n python3-opencv,\n python3-dbus,\n python3-espeak,\n python3-dbus.mainloop.pyqt5,\n python3-pyqt5.qtwebengine,\n espeak-ng,\n pyqt5-dev-tools,\n gstreamer1.0-tools,\n espeak,\n sound-theme-freedesktop,\n python3-poppler-qt5" YAPPS_RUNTIME="python3-yapps" DEBHELPER="debhelper (>= 12)" COMPAT="12" diff --git a/lib/python/qtvcp/core.py b/lib/python/qtvcp/core.py index 321433adf42..d893f645c9c 100644 --- a/lib/python/qtvcp/core.py +++ b/lib/python/qtvcp/core.py @@ -8,7 +8,7 @@ import _hal import hal import traceback -from PyQt5.QtCore import QObject, QTimer, pyqtSignal +from qtpy.QtCore import QObject, QTimer, Signal from common.hal_glib import GStat from common.iniinfo import _IStat as IStatParent diff --git a/lib/python/qtvcp/designer/README.txt b/lib/python/qtvcp/designer/README.txt index 21e3531eb03..51e61e2e5c1 100644 --- a/lib/python/qtvcp/designer/README.txt +++ b/lib/python/qtvcp/designer/README.txt @@ -7,6 +7,7 @@ gstreamer1.0-tools espeak espeak-ng sound-theme-freedesktop +python3-qtpy python3-opengl python3-pyqt5 python3-pyqt5.qsci diff --git a/lib/python/qtvcp/designer/install_script b/lib/python/qtvcp/designer/install_script index 81204b8a1f0..64187315831 100755 --- a/lib/python/qtvcp/designer/install_script +++ b/lib/python/qtvcp/designer/install_script @@ -5,7 +5,7 @@ echo -e '\ninstalling common base packages' sudo apt-get install -y gstreamer1.0-tools espeak espeak-ng sound-theme-freedesktop echo -e '\ninstalling base packages for python3' -sudo apt-get install -y python3-opengl python3-pyqt5 python3-pyqt5.qsci python3-pyqt5.qtsvg python3-pyqt5.qtopengl python3-opencv python3-dbus python3-dbus.mainloop.pyqt5 python3-espeak python3-pyqt5.qtwebengine python3-xlib python3-numpy python3-cairo python3-gi-cairo python3-poppler-qt5 +sudo apt-get install -y python3-qtpy python3-opengl python3-pyqt5 python3-pyqt5.qsci python3-pyqt5.qtsvg python3-pyqt5.qtopengl python3-opencv python3-dbus python3-dbus.mainloop.pyqt5 python3-espeak python3-pyqt5.qtwebengine python3-xlib python3-numpy python3-cairo python3-gi-cairo python3-poppler-qt5 echo -e '\ninstalling python3 tools' sudo apt-get install -y pyqt5-dev-tools diff --git a/lib/python/qtvcp/lib/auto_height/auto_height.py b/lib/python/qtvcp/lib/auto_height/auto_height.py index 7cf2dba71e4..31d7e672c33 100644 --- a/lib/python/qtvcp/lib/auto_height/auto_height.py +++ b/lib/python/qtvcp/lib/auto_height/auto_height.py @@ -18,9 +18,9 @@ import linuxcnc import json -from PyQt5 import QtCore, QtGui, QtWidgets, uic -from PyQt5.QtWidgets import QMessageBox -from PyQt5.QtCore import QProcess +from qtpy import QtCore, QtGui, QtWidgets, uic +from qtpy.QtWidgets import QMessageBox +from qtpy.QtCore import QProcess from qtvcp.core import Info, Status, Action, Path from qtvcp import logger diff --git a/lib/python/qtvcp/lib/gcode_utility/facing.py b/lib/python/qtvcp/lib/gcode_utility/facing.py index bb855d777ff..0b11be2d25d 100644 --- a/lib/python/qtvcp/lib/gcode_utility/facing.py +++ b/lib/python/qtvcp/lib/gcode_utility/facing.py @@ -6,9 +6,9 @@ import atexit import shutil -from PyQt5 import QtGui, QtWidgets, uic -from PyQt5.QtCore import QFile, QRegExp -from PyQt5.QtWidgets import QFileDialog, QMessageBox +from qtpy import QtGui, QtWidgets, uic +from qtpy.QtCore import QFile, QRegExp +from qtpy.QtWidgets import QFileDialog, QMessageBox from linuxcnc import OPERATOR_ERROR, NML_ERROR from qtvcp.core import Info, Status, Action, Path diff --git a/lib/python/qtvcp/lib/gcode_utility/hole_circle.py b/lib/python/qtvcp/lib/gcode_utility/hole_circle.py index 940b41f2079..f0f2a79db15 100644 --- a/lib/python/qtvcp/lib/gcode_utility/hole_circle.py +++ b/lib/python/qtvcp/lib/gcode_utility/hole_circle.py @@ -7,10 +7,10 @@ import atexit import shutil -from PyQt5 import QtGui, QtWidgets, uic -from PyQt5.QtCore import QPoint, QPointF, QLine, QRect, QFile, Qt, QEvent, QRegExp -from PyQt5.QtWidgets import QFileDialog, QMessageBox -from PyQt5.QtGui import QPainter, QBrush, QPen, QColor +from qtpy import QtGui, QtWidgets, uic +from qtpy.QtCore import QPoint, QPointF, QLine, QRect, QFile, Qt, QEvent, QRegExp +from qtpy.QtWidgets import QFileDialog, QMessageBox +from qtpy.QtGui import QPainter, QBrush, QPen, QColor from linuxcnc import OPERATOR_ERROR, NML_ERROR from qtvcp.core import Info, Status, Action, Path diff --git a/lib/python/qtvcp/lib/gcode_utility/hole_enlarge.py b/lib/python/qtvcp/lib/gcode_utility/hole_enlarge.py index 2904b7f00df..54365ac296b 100644 --- a/lib/python/qtvcp/lib/gcode_utility/hole_enlarge.py +++ b/lib/python/qtvcp/lib/gcode_utility/hole_enlarge.py @@ -16,8 +16,8 @@ import tempfile import atexit -from PyQt5 import QtCore, QtGui, QtWidgets, uic -from PyQt5.QtWidgets import QFileDialog, QMessageBox +from qtpy import QtCore, QtGui, QtWidgets, uic +from qtpy.QtWidgets import QFileDialog, QMessageBox from qtvcp.core import Info, Status, Action, Tool, Path INFO = Info() diff --git a/lib/python/qtvcp/lib/keybindings.py b/lib/python/qtvcp/lib/keybindings.py index 060ec5f216d..98235f87cca 100644 --- a/lib/python/qtvcp/lib/keybindings.py +++ b/lib/python/qtvcp/lib/keybindings.py @@ -15,7 +15,7 @@ # you can add or change these import traceback -from PyQt5.QtCore import Qt +from qtpy.QtCore import Qt # Set up logging from qtvcp import logger diff --git a/lib/python/qtvcp/lib/mdi_subprogram/mdi_command_process.py b/lib/python/qtvcp/lib/mdi_subprogram/mdi_command_process.py index 93d4949757e..6b3559dc860 100644 --- a/lib/python/qtvcp/lib/mdi_subprogram/mdi_command_process.py +++ b/lib/python/qtvcp/lib/mdi_subprogram/mdi_command_process.py @@ -19,9 +19,9 @@ import hal import json -from PyQt5 import QtGui, QtCore, QtWidgets, uic -from PyQt5.QtCore import QObject -from PyQt5.QtCore import QProcess, QEvent, Qt, pyqtProperty +from qtpy import QtGui, QtCore, QtWidgets, uic +from qtpy.QtCore import QObject +from qtpy.QtCore import QProcess, QEvent, Qt, Property from qtvcp.core import Status, Action, Path from qtvcp import logger @@ -120,9 +120,9 @@ def __setitem__(self, item, value): # Testing #################################### if __name__ == "__main__": - from PyQt5.QtWidgets import * - from PyQt5.QtCore import * - from PyQt5.QtGui import * + from qtpy.QtWidgets import * + from qtpy.QtCore import * + from qtpy.QtGui import * app = QtWidgets.QApplication(sys.argv) mdi = MDICommand() diff --git a/lib/python/qtvcp/lib/mdi_subprogram/mdi_subprogram.py b/lib/python/qtvcp/lib/mdi_subprogram/mdi_subprogram.py index ba6f39e70e4..42a1b5d904b 100644 --- a/lib/python/qtvcp/lib/mdi_subprogram/mdi_subprogram.py +++ b/lib/python/qtvcp/lib/mdi_subprogram/mdi_subprogram.py @@ -19,7 +19,7 @@ import json import linuxcnc -from PyQt5.QtCore import QObject +from qtpy.QtCore import QObject from qtvcp.core import Status, Action, Info # Instantiate the libraries with global reference diff --git a/lib/python/qtvcp/lib/message.py b/lib/python/qtvcp/lib/message.py index 4b608114bdf..21378bfa144 100644 --- a/lib/python/qtvcp/lib/message.py +++ b/lib/python/qtvcp/lib/message.py @@ -1,6 +1,6 @@ -from PyQt5.QtWidgets import * -from PyQt5.QtCore import Qt -from PyQt5.QtGui import QColor +from qtpy.QtWidgets import * +from qtpy.QtCore import Qt +from qtpy.QtGui import QColor from qtvcp.core import Status, Info from qtvcp.widgets.dialog_widget import LcncDialog import hal @@ -251,7 +251,7 @@ def __setitem__(self, item, value): if __name__ == '__main__': import sys - from PyQt5.QtCore import * + from qtpy.QtCore import * def callreturn(dialog, btn, pinname): result = dialog.qualifiedReturn(btn) diff --git a/lib/python/qtvcp/lib/qt_ngcgui/ngcgui.py b/lib/python/qtvcp/lib/qt_ngcgui/ngcgui.py index 3bb04c0c649..c391b1c8907 100644 --- a/lib/python/qtvcp/lib/qt_ngcgui/ngcgui.py +++ b/lib/python/qtvcp/lib/qt_ngcgui/ngcgui.py @@ -21,9 +21,9 @@ import hashlib import datetime import shutil -from PyQt5 import QtGui, QtWidgets, QtCore, uic -from PyQt5.QtCore import QRegExp -from PyQt5.QtWidgets import QFileDialog, QHBoxLayout, QVBoxLayout, QLabel, QWidget, QLineEdit, QMessageBox +from qtpy import QtGui, QtWidgets, QtCore, uic +from qtpy.QtCore import QRegExp +from qtpy.QtWidgets import QFileDialog, QHBoxLayout, QVBoxLayout, QLabel, QWidget, QLineEdit, QMessageBox from qtvcp.core import Action, Info, Path from qtvcp import logger diff --git a/lib/python/qtvcp/lib/qt_pdf/PDFViewer.py b/lib/python/qtvcp/lib/qt_pdf/PDFViewer.py index 8358d7adaa9..4d84f566fd3 100644 --- a/lib/python/qtvcp/lib/qt_pdf/PDFViewer.py +++ b/lib/python/qtvcp/lib/qt_pdf/PDFViewer.py @@ -1,18 +1,30 @@ import sys import os -from PyQt5 import QtGui, QtWidgets -from PyQt5.QtCore import Qt +from qtpy import QtGui, QtWidgets +from qtpy.QtCore import Qt # Set up logging from qtvcp import logger LOG = logger.getLogger(__name__) +USE_QTPDF = False +USE_POPPLER = False + try: - import popplerqt5 - LIB_BAD = False -except: - LIB_BAD = True - LOG.warning('PDFViwer - Is python3-poppler-qt5 installed?') + from qtpy.QtPdf import QPdfDocument, QPdfDocumentRenderOptions + _QTPDF_RENDER_OPTS = QPdfDocumentRenderOptions() + _QTPDF_RENDER_OPTS.setRenderFlags( + QPdfDocumentRenderOptions.RenderFlag.Annotations + ) + USE_QTPDF = True +except Exception: + try: + import popplerqt5 + USE_POPPLER = True + except Exception: + LOG.warning('PDFViewer - Neither QtPdf nor python3-poppler-qt5 is available.') + +LIB_BAD = not USE_QTPDF and not USE_POPPLER class PDFView(QtWidgets.QScrollArea): def __init__(self, parent=None): @@ -24,9 +36,10 @@ def __init__(self, parent=None): self.vbox = QtWidgets.QVBoxLayout() self.widget.setLayout(self.vbox) self._zoom = 1.0 + self._doc = None if LIB_BAD: - label = QtWidgets.QLabel('Missing python3-poppler-qt5 module') + label = QtWidgets.QLabel('Missing PDF backend: install python3-poppler-qt5 or use Qt6 with QtPdf') self.vbox.addWidget(label) def loadSample(self, name): @@ -39,38 +52,54 @@ def loadSample(self, name): def loadView(self, path): filename = os.path.expanduser(path) if not os.path.exists(filename): - print('No path:',filename) + print('No path:', filename) + return if LIB_BAD: return - self.doc = doc = popplerqt5.Poppler.Document.load(filename) - doc.setRenderHint(popplerqt5.Poppler.Document.Antialiasing) - doc.setRenderHint(popplerqt5.Poppler.Document.TextAntialiasing) + if USE_QTPDF: + if self._doc is None: + self._doc = QPdfDocument(self) + self._doc.load(filename) + else: + self._doc = popplerqt5.Poppler.Document.load(filename) + self._doc.setRenderHint(popplerqt5.Poppler.Document.Antialiasing) + self._doc.setRenderHint(popplerqt5.Poppler.Document.TextAntialiasing) self.refreshPages() def refreshPages(self): + if self._doc is None: + return # clear layout of pages - for i in reversed(range(self.vbox.count())): + for i in reversed(range(self.vbox.count())): self.vbox.itemAt(i).widget().setParent(None) # convert pages to images in a label - for i in range(0,self.doc.numPages()): - label = QtWidgets.QLabel() - label.setScaledContents(True) - - page = self.doc.page(i) - image = page.renderToImage(72.0*self._zoom, 72.0*self._zoom) - - label.setPixmap(QtGui.QPixmap.fromImage(image)) - self.vbox.addWidget(label) + if USE_QTPDF: + for i in range(self._doc.pageCount()): + label = QtWidgets.QLabel() + label.setScaledContents(True) + page_size = self._doc.pagePointSize(i) + render_size = (page_size * self._zoom).toSize() + image = self._doc.render(i, render_size, _QTPDF_RENDER_OPTS) + label.setPixmap(QtGui.QPixmap.fromImage(image)) + self.vbox.addWidget(label) + else: + for i in range(self._doc.numPages()): + label = QtWidgets.QLabel() + label.setScaledContents(True) + page = self._doc.page(i) + image = page.renderToImage(72.0 * self._zoom, 72.0 * self._zoom) + label.setPixmap(QtGui.QPixmap.fromImage(image)) + self.vbox.addWidget(label) def zoomFactor(self): return self._zoom def setZoomFactor(self, factor): if factor > 3: factor = 3.0 - if factor < .5: factor =.5 + if factor < .5: factor = .5 self._zoom = factor self.refreshPages() @@ -78,26 +107,35 @@ def pdf_view(filename): """Return a Scrollarea showing the pages of the specified PDF file.""" filename = os.path.expanduser(filename) if not os.path.exists(filename): - print('No path:',filename) - - doc = popplerqt5.Poppler.Document.load(filename) - doc.setRenderHint(popplerqt5.Poppler.Document.Antialiasing) - doc.setRenderHint(popplerqt5.Poppler.Document.TextAntialiasing) + print('No path:', filename) area = QtWidgets.QScrollArea() area.setWidgetResizable(True) widget = QtWidgets.QWidget() vbox = QtWidgets.QVBoxLayout() - for i in range(0,doc.numPages()): - label = QtWidgets.QLabel() - label.setScaledContents(True) - - page = doc.page(i) - image = page.renderToImage() + if USE_QTPDF: + doc = QPdfDocument() + doc.load(filename) + for i in range(doc.pageCount()): + label = QtWidgets.QLabel() + label.setScaledContents(True) + page_size = doc.pagePointSize(i) + image = doc.render(i, page_size.toSize(), _QTPDF_RENDER_OPTS) + label.setPixmap(QtGui.QPixmap.fromImage(image)) + vbox.addWidget(label) + else: + doc = popplerqt5.Poppler.Document.load(filename) + doc.setRenderHint(popplerqt5.Poppler.Document.Antialiasing) + doc.setRenderHint(popplerqt5.Poppler.Document.TextAntialiasing) + for i in range(doc.numPages()): + label = QtWidgets.QLabel() + label.setScaledContents(True) + page = doc.page(i) + image = page.renderToImage() + label.setPixmap(QtGui.QPixmap.fromImage(image)) + vbox.addWidget(label) - label.setPixmap(QtGui.QPixmap.fromImage(image)) - vbox.addWidget(label) widget.setLayout(vbox) area.setWidget(widget) return area diff --git a/lib/python/qtvcp/lib/qt_vismach/qt_vismach.py b/lib/python/qtvcp/lib/qt_vismach/qt_vismach.py index 35734d7b5f3..ec6bd1d4b08 100644 --- a/lib/python/qtvcp/lib/qt_vismach/qt_vismach.py +++ b/lib/python/qtvcp/lib/qt_vismach/qt_vismach.py @@ -2,9 +2,9 @@ import sys -from PyQt5.QtCore import pyqtSignal, QPoint, QSize, Qt, QTimer -from PyQt5.QtGui import QColor -from PyQt5.QtWidgets import (QApplication, QHBoxLayout, QOpenGLWidget, QSlider, +from qtpy.QtCore import Signal, QPoint, QSize, Qt, QTimer +from qtpy.QtGui import QColor +from qtpy.QtWidgets import (QApplication, QHBoxLayout, QOpenGLWidget, QSlider, QWidget) import OpenGL.GL as GL @@ -65,10 +65,10 @@ def setZoomRange(self, small, big): self.zoomSlider.setRange(small, big) class GLWidget(QOpenGLWidget): - xRotationChanged = pyqtSignal(int) - yRotationChanged = pyqtSignal(int) - zRotationChanged = pyqtSignal(int) - zoomChanged = pyqtSignal(int) + xRotationChanged = Signal(int) + yRotationChanged = Signal(int) + zRotationChanged = Signal(int) + zoomChanged = Signal(int) def __init__(self, parent=None): super(GLWidget, self).__init__(parent) diff --git a/lib/python/qtvcp/lib/qtplasmac/conv_block.py b/lib/python/qtvcp/lib/qtplasmac/conv_block.py index 3f3c34b5f8a..b7267445126 100644 --- a/lib/python/qtvcp/lib/qtplasmac/conv_block.py +++ b/lib/python/qtvcp/lib/qtplasmac/conv_block.py @@ -19,8 +19,8 @@ 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. ''' -from PyQt5.QtCore import Qt, QCoreApplication -from PyQt5.QtWidgets import QLabel, QMessageBox +from qtpy.QtCore import Qt, QCoreApplication +from qtpy.QtWidgets import QLabel, QMessageBox from qtvcp.core import Status from importlib import reload from plasmac import block as BLOCK diff --git a/lib/python/qtvcp/lib/qtplasmac/conv_bolt.py b/lib/python/qtvcp/lib/qtplasmac/conv_bolt.py index fb6dd390129..924538822d3 100644 --- a/lib/python/qtvcp/lib/qtplasmac/conv_bolt.py +++ b/lib/python/qtvcp/lib/qtplasmac/conv_bolt.py @@ -19,8 +19,8 @@ 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. ''' -from PyQt5.QtCore import Qt, QCoreApplication -from PyQt5.QtWidgets import QLabel, QMessageBox +from qtpy.QtCore import Qt, QCoreApplication +from qtpy.QtWidgets import QLabel, QMessageBox from importlib import reload from plasmac import bolt_circle as BOLT diff --git a/lib/python/qtvcp/lib/qtplasmac/conv_circle.py b/lib/python/qtvcp/lib/qtplasmac/conv_circle.py index 6f4af4f1a7d..a0f270e1114 100644 --- a/lib/python/qtvcp/lib/qtplasmac/conv_circle.py +++ b/lib/python/qtvcp/lib/qtplasmac/conv_circle.py @@ -19,8 +19,8 @@ 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. ''' -from PyQt5.QtCore import Qt, QCoreApplication -from PyQt5.QtWidgets import QLabel, QMessageBox +from qtpy.QtCore import Qt, QCoreApplication +from qtpy.QtWidgets import QLabel, QMessageBox from importlib import reload from plasmac import circle as CIRCLE diff --git a/lib/python/qtvcp/lib/qtplasmac/conv_ellipse.py b/lib/python/qtvcp/lib/qtplasmac/conv_ellipse.py index d1032a15b4b..0a50dfa06be 100644 --- a/lib/python/qtvcp/lib/qtplasmac/conv_ellipse.py +++ b/lib/python/qtvcp/lib/qtplasmac/conv_ellipse.py @@ -19,8 +19,8 @@ 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. ''' -from PyQt5.QtCore import Qt, QCoreApplication -from PyQt5.QtWidgets import QLabel, QMessageBox +from qtpy.QtCore import Qt, QCoreApplication +from qtpy.QtWidgets import QLabel, QMessageBox from importlib import reload from plasmac import ellipse as ELLIPSE diff --git a/lib/python/qtvcp/lib/qtplasmac/conv_gusset.py b/lib/python/qtvcp/lib/qtplasmac/conv_gusset.py index 5c1494230a2..e4b9df33226 100644 --- a/lib/python/qtvcp/lib/qtplasmac/conv_gusset.py +++ b/lib/python/qtvcp/lib/qtplasmac/conv_gusset.py @@ -19,8 +19,8 @@ 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. ''' -from PyQt5.QtCore import Qt, QCoreApplication -from PyQt5.QtWidgets import QLabel, QMessageBox +from qtpy.QtCore import Qt, QCoreApplication +from qtpy.QtWidgets import QLabel, QMessageBox from importlib import reload from plasmac import gusset as GUSSET diff --git a/lib/python/qtvcp/lib/qtplasmac/conv_line.py b/lib/python/qtvcp/lib/qtplasmac/conv_line.py index fab6147a90d..4bdc86441cb 100644 --- a/lib/python/qtvcp/lib/qtplasmac/conv_line.py +++ b/lib/python/qtvcp/lib/qtplasmac/conv_line.py @@ -19,8 +19,8 @@ 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. ''' -from PyQt5.QtCore import Qt, QCoreApplication -from PyQt5.QtWidgets import QLabel, QMessageBox +from qtpy.QtCore import Qt, QCoreApplication +from qtpy.QtWidgets import QLabel, QMessageBox from importlib import reload from plasmac import line as LINE diff --git a/lib/python/qtvcp/lib/qtplasmac/conv_polygon.py b/lib/python/qtvcp/lib/qtplasmac/conv_polygon.py index 3cdf179aa1f..1359792b496 100644 --- a/lib/python/qtvcp/lib/qtplasmac/conv_polygon.py +++ b/lib/python/qtvcp/lib/qtplasmac/conv_polygon.py @@ -19,8 +19,8 @@ 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. ''' -from PyQt5.QtCore import Qt, QCoreApplication -from PyQt5.QtWidgets import QLabel, QMessageBox +from qtpy.QtCore import Qt, QCoreApplication +from qtpy.QtWidgets import QLabel, QMessageBox from importlib import reload from plasmac import polygon as POLYGON diff --git a/lib/python/qtvcp/lib/qtplasmac/conv_rectangle.py b/lib/python/qtvcp/lib/qtplasmac/conv_rectangle.py index d204df3c80f..b0090fcf861 100644 --- a/lib/python/qtvcp/lib/qtplasmac/conv_rectangle.py +++ b/lib/python/qtvcp/lib/qtplasmac/conv_rectangle.py @@ -19,8 +19,8 @@ 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. ''' -from PyQt5.QtCore import Qt, QCoreApplication -from PyQt5.QtWidgets import QLabel, QMessageBox +from qtpy.QtCore import Qt, QCoreApplication +from qtpy.QtWidgets import QLabel, QMessageBox from importlib import reload from plasmac import rectangle as RECTANGLE diff --git a/lib/python/qtvcp/lib/qtplasmac/conv_sector.py b/lib/python/qtvcp/lib/qtplasmac/conv_sector.py index 399a6025dba..c082ea321cb 100644 --- a/lib/python/qtvcp/lib/qtplasmac/conv_sector.py +++ b/lib/python/qtvcp/lib/qtplasmac/conv_sector.py @@ -19,8 +19,8 @@ 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. ''' -from PyQt5.QtCore import Qt, QCoreApplication -from PyQt5.QtWidgets import QLabel, QMessageBox +from qtpy.QtCore import Qt, QCoreApplication +from qtpy.QtWidgets import QLabel, QMessageBox from importlib import reload from plasmac import sector as SECTOR diff --git a/lib/python/qtvcp/lib/qtplasmac/conv_settings.py b/lib/python/qtvcp/lib/qtplasmac/conv_settings.py index b0045aa03c7..d2ab4eaf81c 100644 --- a/lib/python/qtvcp/lib/qtplasmac/conv_settings.py +++ b/lib/python/qtvcp/lib/qtplasmac/conv_settings.py @@ -19,8 +19,8 @@ 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. ''' -from PyQt5.QtCore import Qt, QCoreApplication -from PyQt5.QtWidgets import QLabel, QMessageBox +from qtpy.QtCore import Qt, QCoreApplication +from qtpy.QtWidgets import QLabel, QMessageBox _translate = QCoreApplication.translate diff --git a/lib/python/qtvcp/lib/qtplasmac/conv_slot.py b/lib/python/qtvcp/lib/qtplasmac/conv_slot.py index 899732ac3c4..b3e1c604b30 100644 --- a/lib/python/qtvcp/lib/qtplasmac/conv_slot.py +++ b/lib/python/qtvcp/lib/qtplasmac/conv_slot.py @@ -19,8 +19,8 @@ 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. ''' -from PyQt5.QtCore import Qt, QCoreApplication -from PyQt5.QtWidgets import QLabel, QMessageBox +from qtpy.QtCore import Qt, QCoreApplication +from qtpy.QtWidgets import QLabel, QMessageBox from importlib import reload from plasmac import slot as SLOT diff --git a/lib/python/qtvcp/lib/qtplasmac/conv_star.py b/lib/python/qtvcp/lib/qtplasmac/conv_star.py index 58e6bd6326c..3e3431078c0 100644 --- a/lib/python/qtvcp/lib/qtplasmac/conv_star.py +++ b/lib/python/qtvcp/lib/qtplasmac/conv_star.py @@ -19,8 +19,8 @@ 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. ''' -from PyQt5.QtCore import Qt, QCoreApplication -from PyQt5.QtWidgets import QLabel, QMessageBox +from qtpy.QtCore import Qt, QCoreApplication +from qtpy.QtWidgets import QLabel, QMessageBox from importlib import reload from plasmac import star as STAR diff --git a/lib/python/qtvcp/lib/qtplasmac/conv_triangle.py b/lib/python/qtvcp/lib/qtplasmac/conv_triangle.py index b3c7e4c41e5..31416d7647f 100644 --- a/lib/python/qtvcp/lib/qtplasmac/conv_triangle.py +++ b/lib/python/qtvcp/lib/qtplasmac/conv_triangle.py @@ -19,8 +19,8 @@ 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. ''' -from PyQt5.QtCore import Qt, QCoreApplication -from PyQt5.QtWidgets import QMessageBox +from qtpy.QtCore import Qt, QCoreApplication +from qtpy.QtWidgets import QMessageBox from importlib import reload from plasmac import triangle as TRIANGLE diff --git a/lib/python/qtvcp/lib/qtplasmac/conversational.py b/lib/python/qtvcp/lib/qtplasmac/conversational.py index b21d0064c5e..0e73682dec4 100644 --- a/lib/python/qtvcp/lib/qtplasmac/conversational.py +++ b/lib/python/qtvcp/lib/qtplasmac/conversational.py @@ -23,9 +23,9 @@ import re from shutil import copy as COPY from importlib import reload -from PyQt5.QtCore import Qt, QCoreApplication -from PyQt5.QtWidgets import QFileDialog, QMessageBox, QPushButton, QLabel, QLineEdit -from PyQt5.QtWidgets import QComboBox +from qtpy.QtCore import Qt, QCoreApplication +from qtpy.QtWidgets import QFileDialog, QMessageBox, QPushButton, QLabel, QLineEdit +from qtpy.QtWidgets import QComboBox from qtvcp.core import Status, Action from qtvcp.lib.qtplasmac import conv_settings as CONVSET from qtvcp.lib.qtplasmac import conv_line as CONVLINE diff --git a/lib/python/qtvcp/lib/qtplasmac/set_offsets.py b/lib/python/qtvcp/lib/qtplasmac/set_offsets.py index 4b9fdb32739..b385d5e2503 100644 --- a/lib/python/qtvcp/lib/qtplasmac/set_offsets.py +++ b/lib/python/qtvcp/lib/qtplasmac/set_offsets.py @@ -21,10 +21,10 @@ import os from shutil import copy as COPY -from PyQt5 import QtCore -from PyQt5.QtCore import QCoreApplication -from PyQt5.QtWidgets import QDialog, QMessageBox, QPushButton, QGridLayout, QLabel, QComboBox -from PyQt5.QtGui import QIcon +from qtpy import QtCore +from qtpy.QtCore import QCoreApplication +from qtpy.QtWidgets import QDialog, QMessageBox, QPushButton, QGridLayout, QLabel, QComboBox +from qtpy.QtGui import QIcon _translate = QCoreApplication.translate diff --git a/lib/python/qtvcp/lib/qtplasmac/tooltips.py b/lib/python/qtvcp/lib/qtplasmac/tooltips.py index 4480091c47a..d6443a8d847 100644 --- a/lib/python/qtvcp/lib/qtplasmac/tooltips.py +++ b/lib/python/qtvcp/lib/qtplasmac/tooltips.py @@ -19,7 +19,7 @@ 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. ''' -from PyQt5.QtCore import QCoreApplication +from qtpy.QtCore import QCoreApplication _translate = QCoreApplication.translate diff --git a/lib/python/qtvcp/lib/sys_notify.py b/lib/python/qtvcp/lib/sys_notify.py index 71d6a2f9995..7d0bbcdf697 100644 --- a/lib/python/qtvcp/lib/sys_notify.py +++ b/lib/python/qtvcp/lib/sys_notify.py @@ -25,10 +25,17 @@ LOG = logger.getLogger(__name__) DBusQtMainLoop = None -try: - from dbus.mainloop.pyqt5 import DBusQtMainLoop -except ImportError: - LOG.warning("Could not import DBusQtMainLoop, is package 'python3-dbus.mainloop.pyqt5' installed?") +for _mod in ('dbus.mainloop.pyqt5', 'dbus.mainloop.pyqt6'): + try: + import importlib + DBusQtMainLoop = importlib.import_module(_mod).DBusQtMainLoop + break + except ImportError: + pass +if DBusQtMainLoop is None: + LOG.warning("Could not import a DBus Qt main loop integration. " + "Install python3-dbus.mainloop.pyqt5 or python3-dbus.mainloop.pyqt6 " + "for desktop notification callbacks.") APP_NAME = '' DBUS_IFACE = None @@ -253,7 +260,7 @@ def onClose(n): if __name__ == "__main__": import sys - from PyQt5.QtCore import QCoreApplication + from qtpy.QtCore import QCoreApplication app = QCoreApplication(sys.argv) diff --git a/lib/python/qtvcp/lib/toolbar_actions.py b/lib/python/qtvcp/lib/toolbar_actions.py index 6130adcfb91..3492c8d7c8b 100644 --- a/lib/python/qtvcp/lib/toolbar_actions.py +++ b/lib/python/qtvcp/lib/toolbar_actions.py @@ -14,7 +14,7 @@ # GNU General Public License for more details. import os -from PyQt5 import QtWidgets, QtCore +from qtpy import QtWidgets, QtCore from qtvcp.core import Status, Action, Info from qtvcp.qt_makegui import VCPWindow from qtvcp.lib.aux_program_loader import Aux_program_loader diff --git a/lib/python/qtvcp/lib/touchoff_subprogram.py b/lib/python/qtvcp/lib/touchoff_subprogram.py index 9e33119d985..88777f6b09a 100644 --- a/lib/python/qtvcp/lib/touchoff_subprogram.py +++ b/lib/python/qtvcp/lib/touchoff_subprogram.py @@ -21,7 +21,7 @@ import time import linuxcnc -from PyQt5.QtCore import QObject +from qtpy.QtCore import QObject from qtvcp.core import Status, Action, Info from qtvcp import logger LOG = logger.getLogger(__name__) diff --git a/lib/python/qtvcp/lib/writer/ext/datetime.py b/lib/python/qtvcp/lib/writer/ext/datetime.py index d507bd16842..270372a2b2c 100644 --- a/lib/python/qtvcp/lib/writer/ext/datetime.py +++ b/lib/python/qtvcp/lib/writer/ext/datetime.py @@ -1,8 +1,8 @@ -from PyQt5 import QtWidgets +from qtpy import QtWidgets #PYQT5 QDialog, QPushButton, QGridLayout, QComboBox -from PyQt5 import QtGui, QtCore -from PyQt5.QtCore import Qt +from qtpy import QtGui, QtCore +from qtpy.QtCore import Qt from time import strftime diff --git a/lib/python/qtvcp/lib/writer/ext/find.py b/lib/python/qtvcp/lib/writer/ext/find.py index 7972078e066..e10d82e4901 100644 --- a/lib/python/qtvcp/lib/writer/ext/find.py +++ b/lib/python/qtvcp/lib/writer/ext/find.py @@ -1,12 +1,12 @@ -from PyQt5 import QtWidgets +from qtpy import QtWidgets #PYQT5 QTextEdit, QDialog, QPushButton, QRadioButton, QGridLayout -from PyQt5 import QtGui, QtCore -from PyQt5.QtCore import Qt +from qtpy import QtGui, QtCore +from qtpy.QtCore import Qt import re diff --git a/lib/python/qtvcp/lib/writer/ext/table.py b/lib/python/qtvcp/lib/writer/ext/table.py index 912ab7a7d6e..75b8fd2efb8 100644 --- a/lib/python/qtvcp/lib/writer/ext/table.py +++ b/lib/python/qtvcp/lib/writer/ext/table.py @@ -1,12 +1,12 @@ import sys -from PyQt5 import QtWidgets +from qtpy import QtWidgets #PYQT5 QSpinBox, QMessageBox, QDialog, QPushButton, QGridLayout, QLabel -from PyQt5 import QtGui, QtCore -from PyQt5.QtCore import Qt +from qtpy import QtGui, QtCore +from qtpy.QtCore import Qt class Table(QtWidgets.QDialog): def __init__(self,parent = None): diff --git a/lib/python/qtvcp/lib/writer/ext/wordcount.py b/lib/python/qtvcp/lib/writer/ext/wordcount.py index 63814d57599..68ad2814019 100644 --- a/lib/python/qtvcp/lib/writer/ext/wordcount.py +++ b/lib/python/qtvcp/lib/writer/ext/wordcount.py @@ -1,8 +1,8 @@ -from PyQt5 import QtWidgets +from qtpy import QtWidgets #PYQT5 QDialog, QGridLayout, QLabel, QWidget -from PyQt5 import QtGui, QtCore -from PyQt5.QtCore import Qt +from qtpy import QtGui, QtCore +from qtpy.QtCore import Qt class WordCount(QtWidgets.QDialog): def __init__(self,parent = None): diff --git a/lib/python/qtvcp/lib/writer/writer.py b/lib/python/qtvcp/lib/writer/writer.py index 92c9441f4b2..b7ad21a887a 100755 --- a/lib/python/qtvcp/lib/writer/writer.py +++ b/lib/python/qtvcp/lib/writer/writer.py @@ -5,10 +5,10 @@ import sys import os -from PyQt5 import QtWidgets -from PyQt5 import QtPrintSupport -from PyQt5 import QtGui, QtCore -from PyQt5.QtCore import Qt +from qtpy import QtWidgets +from qtpy import QtPrintSupport +from qtpy import QtGui, QtCore +from qtpy.QtCore import Qt from .ext import * from qtvcp.core import Path diff --git a/lib/python/qtvcp/plugins/actionbutton_plugin.py b/lib/python/qtvcp/plugins/actionbutton_plugin.py index 46931a5960c..94979c04e27 100644 --- a/lib/python/qtvcp/plugins/actionbutton_plugin.py +++ b/lib/python/qtvcp/plugins/actionbutton_plugin.py @@ -1,7 +1,7 @@ #!/usr/bin/env python3 -from PyQt5 import QtCore, QtGui, QtWidgets -from PyQt5.QtDesigner import QPyDesignerCustomWidgetPlugin, \ +from qtpy import QtCore, QtGui, QtWidgets +from qtpy.QtDesigner import QPyDesignerCustomWidgetPlugin, \ QPyDesignerTaskMenuExtension, QExtensionFactory, \ QDesignerFormWindowInterface from qtvcp.widgets.action_button import ActionButton diff --git a/lib/python/qtvcp/plugins/bar_plugin.py b/lib/python/qtvcp/plugins/bar_plugin.py index 13202647c99..c4f5a23b44d 100644 --- a/lib/python/qtvcp/plugins/bar_plugin.py +++ b/lib/python/qtvcp/plugins/bar_plugin.py @@ -1,7 +1,7 @@ #!/usr/bin/env python3 -from PyQt5 import QtGui -from PyQt5.QtDesigner import QPyDesignerCustomWidgetPlugin +from qtpy import QtGui +from qtpy.QtDesigner import QPyDesignerCustomWidgetPlugin from qtvcp.widgets.bar import HalBar from qtvcp.widgets.qtvcp_icons import Icon diff --git a/lib/python/qtvcp/plugins/basic_probe_plugin.py b/lib/python/qtvcp/plugins/basic_probe_plugin.py index e257e66558c..01bff1c632f 100644 --- a/lib/python/qtvcp/plugins/basic_probe_plugin.py +++ b/lib/python/qtvcp/plugins/basic_probe_plugin.py @@ -1,7 +1,7 @@ #!/usr/bin/env python3 -from PyQt5 import QtGui -from PyQt5.QtDesigner import QPyDesignerCustomWidgetPlugin +from qtpy import QtGui +from qtpy.QtDesigner import QPyDesignerCustomWidgetPlugin from qtvcp.widgets.basic_probe import BasicProbe from qtvcp.widgets.qtvcp_icons import Icon diff --git a/lib/python/qtvcp/plugins/camview_plugin.py b/lib/python/qtvcp/plugins/camview_plugin.py index b53d6a9b455..158af828abd 100644 --- a/lib/python/qtvcp/plugins/camview_plugin.py +++ b/lib/python/qtvcp/plugins/camview_plugin.py @@ -1,7 +1,7 @@ #!/usr/bin/env python3 -from PyQt5.QtGui import QIcon, QPixmap -from PyQt5.QtDesigner import QPyDesignerCustomWidgetPlugin +from qtpy.QtGui import QIcon, QPixmap +from qtpy.QtDesigner import QPyDesignerCustomWidgetPlugin from qtvcp.widgets.camview_widget import CamView from qtvcp.widgets.qtvcp_icons import Icon diff --git a/lib/python/qtvcp/plugins/container_plugin.py b/lib/python/qtvcp/plugins/container_plugin.py index 9203b67b71d..abc06bae8fa 100644 --- a/lib/python/qtvcp/plugins/container_plugin.py +++ b/lib/python/qtvcp/plugins/container_plugin.py @@ -1,7 +1,7 @@ #!/usr/bin/env python3 -from PyQt5 import QtGui -from PyQt5.QtDesigner import QPyDesignerCustomWidgetPlugin +from qtpy import QtGui +from qtpy.QtDesigner import QPyDesignerCustomWidgetPlugin from qtvcp.widgets.container_widgets import StateEnableGridLayout from qtvcp.widgets.container_widgets import JointEnableWidget from qtvcp.widgets.qtvcp_icons import Icon diff --git a/lib/python/qtvcp/plugins/detach_tabs_plugin.py b/lib/python/qtvcp/plugins/detach_tabs_plugin.py index 38348fa79ea..8fb3dc055f3 100644 --- a/lib/python/qtvcp/plugins/detach_tabs_plugin.py +++ b/lib/python/qtvcp/plugins/detach_tabs_plugin.py @@ -1,7 +1,7 @@ #!/usr/bin/env python3 -from PyQt5 import QtGui -from PyQt5.QtDesigner import QPyDesignerCustomWidgetPlugin +from qtpy import QtGui +from qtpy.QtDesigner import QPyDesignerCustomWidgetPlugin from qtvcp.widgets.detach_tabs import DetachTabWidget from qtvcp.widgets.qtvcp_icons import Icon diff --git a/lib/python/qtvcp/plugins/dialog_plugin.py b/lib/python/qtvcp/plugins/dialog_plugin.py index e76968af08b..3726506e6c6 100644 --- a/lib/python/qtvcp/plugins/dialog_plugin.py +++ b/lib/python/qtvcp/plugins/dialog_plugin.py @@ -1,7 +1,7 @@ #!/usr/bin/env python3 -from PyQt5.QtGui import QIcon, QPixmap -from PyQt5.QtDesigner import QPyDesignerCustomWidgetPlugin +from qtpy.QtGui import QIcon, QPixmap +from qtpy.QtDesigner import QPyDesignerCustomWidgetPlugin from qtvcp.widgets.dialog_widget import * from qtvcp.widgets.qtvcp_icons import Icon diff --git a/lib/python/qtvcp/plugins/graphics_plugin.py b/lib/python/qtvcp/plugins/graphics_plugin.py index e534215aa0e..30eeb1454ee 100644 --- a/lib/python/qtvcp/plugins/graphics_plugin.py +++ b/lib/python/qtvcp/plugins/graphics_plugin.py @@ -1,7 +1,7 @@ #!/usr/bin/env python3 -from PyQt5 import QtGui -from PyQt5.QtDesigner import QPyDesignerCustomWidgetPlugin +from qtpy import QtGui +from qtpy.QtDesigner import QPyDesignerCustomWidgetPlugin from qtvcp.widgets.gcode_graphics import GCodeGraphics from qtvcp.widgets.qtvcp_icons import Icon diff --git a/lib/python/qtvcp/plugins/hal_label_plugin.py b/lib/python/qtvcp/plugins/hal_label_plugin.py index 53e93ab7bb8..a51144180cb 100644 --- a/lib/python/qtvcp/plugins/hal_label_plugin.py +++ b/lib/python/qtvcp/plugins/hal_label_plugin.py @@ -1,7 +1,7 @@ #!/usr/bin/env python3 -from PyQt5.QtGui import QIcon, QPixmap -from PyQt5.QtDesigner import QPyDesignerCustomWidgetPlugin +from qtpy.QtGui import QIcon, QPixmap +from qtpy.QtDesigner import QPyDesignerCustomWidgetPlugin from qtvcp.widgets.hal_label import HALLabel from qtvcp.widgets.qtvcp_icons import Icon diff --git a/lib/python/qtvcp/plugins/jogincrements_plugin.py b/lib/python/qtvcp/plugins/jogincrements_plugin.py index a45c74612ee..9c89b914e0d 100644 --- a/lib/python/qtvcp/plugins/jogincrements_plugin.py +++ b/lib/python/qtvcp/plugins/jogincrements_plugin.py @@ -1,7 +1,7 @@ #!/usr/bin/env python3 -from PyQt5.QtGui import QIcon, QPixmap -from PyQt5.QtDesigner import QPyDesignerCustomWidgetPlugin +from qtpy.QtGui import QIcon, QPixmap +from qtpy.QtDesigner import QPyDesignerCustomWidgetPlugin from qtvcp.widgets.jog_increments import JogIncrements from qtvcp.widgets.qtvcp_icons import Icon diff --git a/lib/python/qtvcp/plugins/joypad_plugin.py b/lib/python/qtvcp/plugins/joypad_plugin.py index 6e93217de5c..a496cbe4322 100644 --- a/lib/python/qtvcp/plugins/joypad_plugin.py +++ b/lib/python/qtvcp/plugins/joypad_plugin.py @@ -1,7 +1,7 @@ #!/usr/bin/env python3 -from PyQt5.QtGui import QIcon, QPixmap -from PyQt5.QtDesigner import QPyDesignerCustomWidgetPlugin +from qtpy.QtGui import QIcon, QPixmap +from qtpy.QtDesigner import QPyDesignerCustomWidgetPlugin from qtvcp.widgets.joypad import JoyPad, HALPad from qtvcp.widgets.qtvcp_icons import Icon diff --git a/lib/python/qtvcp/plugins/led_plugin.py b/lib/python/qtvcp/plugins/led_plugin.py index 37ee8c664cc..c9e43b81668 100644 --- a/lib/python/qtvcp/plugins/led_plugin.py +++ b/lib/python/qtvcp/plugins/led_plugin.py @@ -1,7 +1,7 @@ #!/usr/bin/env python3 -from PyQt5.QtGui import QIcon, QPixmap -from PyQt5.QtDesigner import QPyDesignerCustomWidgetPlugin +from qtpy.QtGui import QIcon, QPixmap +from qtpy.QtDesigner import QPyDesignerCustomWidgetPlugin from qtvcp.widgets.led_widget import LED from qtvcp.widgets.qtvcp_icons import Icon diff --git a/lib/python/qtvcp/plugins/nurbs_editor_plugin.py b/lib/python/qtvcp/plugins/nurbs_editor_plugin.py index db218fae799..b5b40ac7c2f 100644 --- a/lib/python/qtvcp/plugins/nurbs_editor_plugin.py +++ b/lib/python/qtvcp/plugins/nurbs_editor_plugin.py @@ -1,7 +1,7 @@ #!/usr/bin/env python3 -from PyQt5.QtGui import QIcon, QPixmap -from PyQt5.QtDesigner import QPyDesignerCustomWidgetPlugin +from qtpy.QtGui import QIcon, QPixmap +from qtpy.QtDesigner import QPyDesignerCustomWidgetPlugin from qtvcp.widgets.nurbs_editor import NurbsEditor from qtvcp.widgets.qtvcp_icons import Icon diff --git a/lib/python/qtvcp/plugins/overlay_plugin.py b/lib/python/qtvcp/plugins/overlay_plugin.py index e4683d0a900..1df60ab6a49 100644 --- a/lib/python/qtvcp/plugins/overlay_plugin.py +++ b/lib/python/qtvcp/plugins/overlay_plugin.py @@ -1,7 +1,7 @@ #!/usr/bin/env python3 -from PyQt5.QtGui import QIcon, QPixmap -from PyQt5.QtDesigner import QPyDesignerCustomWidgetPlugin +from qtpy.QtGui import QIcon, QPixmap +from qtpy.QtDesigner import QPyDesignerCustomWidgetPlugin from qtvcp.widgets.overlay_widget import FocusOverlay from qtvcp.widgets.qtvcp_icons import Icon diff --git a/lib/python/qtvcp/plugins/round_gauge_plugin.py b/lib/python/qtvcp/plugins/round_gauge_plugin.py index ca8ca2f8f61..7108faa3aed 100644 --- a/lib/python/qtvcp/plugins/round_gauge_plugin.py +++ b/lib/python/qtvcp/plugins/round_gauge_plugin.py @@ -1,7 +1,7 @@ #!/usr/bin/env python3 -from PyQt5.QtGui import QIcon, QPixmap -from PyQt5.QtDesigner import QPyDesignerCustomWidgetPlugin +from qtpy.QtGui import QIcon, QPixmap +from qtpy.QtDesigner import QPyDesignerCustomWidgetPlugin from qtvcp.widgets.round_gauge import Gauge from qtvcp.widgets.qtvcp_icons import Icon diff --git a/lib/python/qtvcp/plugins/round_progress_bar_plugin.py b/lib/python/qtvcp/plugins/round_progress_bar_plugin.py index 5cedd9fc08f..e0aa483f094 100644 --- a/lib/python/qtvcp/plugins/round_progress_bar_plugin.py +++ b/lib/python/qtvcp/plugins/round_progress_bar_plugin.py @@ -1,7 +1,7 @@ #!/usr/bin/env python3 -from PyQt5.QtGui import QIcon, QPixmap -from PyQt5.QtDesigner import QPyDesignerCustomWidgetPlugin +from qtpy.QtGui import QIcon, QPixmap +from qtpy.QtDesigner import QPyDesignerCustomWidgetPlugin from qtvcp.widgets.round_progress import RoundProgressBar from qtvcp.widgets.qtvcp_icons import Icon diff --git a/lib/python/qtvcp/plugins/screenoptions_plugin.py b/lib/python/qtvcp/plugins/screenoptions_plugin.py index ff70767199a..fc5ca12b6be 100644 --- a/lib/python/qtvcp/plugins/screenoptions_plugin.py +++ b/lib/python/qtvcp/plugins/screenoptions_plugin.py @@ -1,7 +1,7 @@ #!/usr/bin/env python3 -from PyQt5 import QtCore, QtGui, QtWidgets -from PyQt5.QtDesigner import QPyDesignerCustomWidgetPlugin, \ +from qtpy import QtCore, QtGui, QtWidgets +from qtpy.QtDesigner import QPyDesignerCustomWidgetPlugin, \ QPyDesignerTaskMenuExtension, QExtensionFactory, \ QDesignerFormWindowInterface diff --git a/lib/python/qtvcp/plugins/simplewidgets_plugin.py b/lib/python/qtvcp/plugins/simplewidgets_plugin.py index 37b2add6963..070dbc9d81a 100644 --- a/lib/python/qtvcp/plugins/simplewidgets_plugin.py +++ b/lib/python/qtvcp/plugins/simplewidgets_plugin.py @@ -1,7 +1,7 @@ #!/usr/bin/env python3 -from PyQt5 import QtGui -from PyQt5.QtDesigner import QPyDesignerCustomWidgetPlugin +from qtpy import QtGui +from qtpy.QtDesigner import QPyDesignerCustomWidgetPlugin from qtvcp.widgets.simple_widgets import IndicatedPushButton from qtvcp.widgets.simple_widgets import PushButton from qtvcp.widgets.simple_widgets import CheckBox diff --git a/lib/python/qtvcp/plugins/state_label_plugin.py b/lib/python/qtvcp/plugins/state_label_plugin.py index e4f55822198..b10a6d8bc58 100644 --- a/lib/python/qtvcp/plugins/state_label_plugin.py +++ b/lib/python/qtvcp/plugins/state_label_plugin.py @@ -1,7 +1,7 @@ #!/usr/bin/env python3 -from PyQt5.QtGui import QIcon, QPixmap -from PyQt5.QtDesigner import QPyDesignerCustomWidgetPlugin +from qtpy.QtGui import QIcon, QPixmap +from qtpy.QtDesigner import QPyDesignerCustomWidgetPlugin from qtvcp.widgets.state_label import StateLabel from qtvcp.widgets.qtvcp_icons import Icon diff --git a/lib/python/qtvcp/plugins/state_led_plugin.py b/lib/python/qtvcp/plugins/state_led_plugin.py index 25b4d05c502..defbc111b4a 100644 --- a/lib/python/qtvcp/plugins/state_led_plugin.py +++ b/lib/python/qtvcp/plugins/state_led_plugin.py @@ -1,7 +1,7 @@ #!/usr/bin/env python3 -from PyQt5.QtGui import QIcon, QPixmap -from PyQt5.QtDesigner import QPyDesignerCustomWidgetPlugin +from qtpy.QtGui import QIcon, QPixmap +from qtpy.QtDesigner import QPyDesignerCustomWidgetPlugin from qtvcp.widgets.state_led import StateLED from qtvcp.widgets.qtvcp_icons import Icon diff --git a/lib/python/qtvcp/plugins/status_adjustment_bar_plugin.py b/lib/python/qtvcp/plugins/status_adjustment_bar_plugin.py index 603d651dd4c..dd3c5f86d3c 100644 --- a/lib/python/qtvcp/plugins/status_adjustment_bar_plugin.py +++ b/lib/python/qtvcp/plugins/status_adjustment_bar_plugin.py @@ -1,7 +1,7 @@ #!/usr/bin/env python3 -from PyQt5.QtGui import QIcon, QPixmap -from PyQt5.QtDesigner import QPyDesignerCustomWidgetPlugin +from qtpy.QtGui import QIcon, QPixmap +from qtpy.QtDesigner import QPyDesignerCustomWidgetPlugin from qtvcp.widgets.adjustment_bar import StatusAdjustmentBar from qtvcp.widgets.qtvcp_icons import Icon diff --git a/lib/python/qtvcp/plugins/status_label_plugin.py b/lib/python/qtvcp/plugins/status_label_plugin.py index 4dbf216338f..b50b6424144 100644 --- a/lib/python/qtvcp/plugins/status_label_plugin.py +++ b/lib/python/qtvcp/plugins/status_label_plugin.py @@ -1,9 +1,9 @@ #!/usr/bin/env python3 -from PyQt5 import QtCore, QtGui, QtWidgets -from PyQt5.QtGui import QIcon, QPixmap -from PyQt5.QtCore import QVariant -from PyQt5.QtDesigner import QPyDesignerCustomWidgetPlugin, QExtensionFactory, QPyDesignerTaskMenuExtension, \ +from qtpy import QtCore, QtGui, QtWidgets +from qtpy.QtGui import QIcon, QPixmap +from qtpy.QtCore import QVariant +from qtpy.QtDesigner import QPyDesignerCustomWidgetPlugin, QExtensionFactory, QPyDesignerTaskMenuExtension, \ QPyDesignerPropertySheetExtension, QDesignerFormWindowInterface from qtvcp.widgets.richtext_selector import RichTextEditorDialog @@ -99,9 +99,13 @@ def __init__(self, widget, parent): self.temp_flag = True # print dir(self.widget.pyqtConfigure.__sizeof__) # print self.widget.pyqtConfigure.__sizeof__() + try: + from qtpy.QtCore import Property as _QtProperty + except Exception: + from PyQt5.QtCore import pyqtProperty as _QtProperty for i in StatusLabel.__dict__: # print i - if 'PyQt5.QtCore.pyqtProperty' in str(StatusLabel.__dict__[i]): + if isinstance(StatusLabel.__dict__[i], _QtProperty): self.propertylist.append(i) print(i) # print dir(self.widget) diff --git a/lib/python/qtvcp/plugins/status_slider_plugin.py b/lib/python/qtvcp/plugins/status_slider_plugin.py index 8a96f79fcf0..7acd7e0accc 100644 --- a/lib/python/qtvcp/plugins/status_slider_plugin.py +++ b/lib/python/qtvcp/plugins/status_slider_plugin.py @@ -1,7 +1,7 @@ #!/usr/bin/env python3 -from PyQt5.QtGui import QIcon, QPixmap -from PyQt5.QtDesigner import QPyDesignerCustomWidgetPlugin +from qtpy.QtGui import QIcon, QPixmap +from qtpy.QtDesigner import QPyDesignerCustomWidgetPlugin from qtvcp.widgets.status_slider import StatusSlider from qtvcp.widgets.qtvcp_icons import Icon diff --git a/lib/python/qtvcp/plugins/tab_widget_plugin.py b/lib/python/qtvcp/plugins/tab_widget_plugin.py index 8ff9f445bc0..afbb2228731 100644 --- a/lib/python/qtvcp/plugins/tab_widget_plugin.py +++ b/lib/python/qtvcp/plugins/tab_widget_plugin.py @@ -1,7 +1,7 @@ #!/usr/bin/env python3 -from PyQt5 import QtGui -from PyQt5.QtDesigner import QPyDesignerCustomWidgetPlugin +from qtpy import QtGui +from qtpy.QtDesigner import QPyDesignerCustomWidgetPlugin from qtvcp.widgets.tab_widget import TabWidget from qtvcp.widgets.qtvcp_icons import Icon diff --git a/lib/python/qtvcp/plugins/toolbutton_plugin.py b/lib/python/qtvcp/plugins/toolbutton_plugin.py index 4eb84eb4f2b..b00541ab60c 100644 --- a/lib/python/qtvcp/plugins/toolbutton_plugin.py +++ b/lib/python/qtvcp/plugins/toolbutton_plugin.py @@ -1,7 +1,7 @@ #!/usr/bin/env python3 -from PyQt5 import QtGui -from PyQt5.QtDesigner import QPyDesignerCustomWidgetPlugin +from qtpy import QtGui +from qtpy.QtDesigner import QPyDesignerCustomWidgetPlugin from qtvcp.widgets.system_tool_button import SystemToolButton from qtvcp.widgets.action_tool_button import ActionToolButton from qtvcp.widgets.axisPickTool_button import AxisPickToolButton diff --git a/lib/python/qtvcp/plugins/versa_probe_plugin.py b/lib/python/qtvcp/plugins/versa_probe_plugin.py index ac1e5f9722e..b082dcbd2b0 100644 --- a/lib/python/qtvcp/plugins/versa_probe_plugin.py +++ b/lib/python/qtvcp/plugins/versa_probe_plugin.py @@ -1,7 +1,7 @@ #!/usr/bin/env python3 -from PyQt5 import QtGui -from PyQt5.QtDesigner import QPyDesignerCustomWidgetPlugin +from qtpy import QtGui +from qtpy.QtDesigner import QPyDesignerCustomWidgetPlugin from qtvcp.widgets.versa_probe import VersaProbe from qtvcp.widgets.qtvcp_icons import Icon diff --git a/lib/python/qtvcp/plugins/virtualkeyboard_plugin.py b/lib/python/qtvcp/plugins/virtualkeyboard_plugin.py index 6c58b78e2df..9dcccdcb66d 100644 --- a/lib/python/qtvcp/plugins/virtualkeyboard_plugin.py +++ b/lib/python/qtvcp/plugins/virtualkeyboard_plugin.py @@ -1,7 +1,7 @@ #!/usr/bin/env python3 -from PyQt5 import QtGui -from PyQt5.QtDesigner import QPyDesignerCustomWidgetPlugin +from qtpy import QtGui +from qtpy.QtDesigner import QPyDesignerCustomWidgetPlugin from qtvcp.widgets.virtualkeyboard import VirtualKeyboard from qtvcp.widgets.qtvcp_icons import Icon diff --git a/lib/python/qtvcp/plugins/web_widget_plugin.py b/lib/python/qtvcp/plugins/web_widget_plugin.py index 6d78b5e4899..d18d213ba81 100644 --- a/lib/python/qtvcp/plugins/web_widget_plugin.py +++ b/lib/python/qtvcp/plugins/web_widget_plugin.py @@ -1,7 +1,7 @@ #!/usr/bin/env python3 -from PyQt5 import QtGui -from PyQt5.QtDesigner import QPyDesignerCustomWidgetPlugin +from qtpy import QtGui +from qtpy.QtDesigner import QPyDesignerCustomWidgetPlugin from qtvcp.widgets.web_widget import WebWidget from qtvcp.widgets.qtvcp_icons import Icon diff --git a/lib/python/qtvcp/plugins/widgets_plugin.py b/lib/python/qtvcp/plugins/widgets_plugin.py index 1bff2f10458..b82789bf422 100644 --- a/lib/python/qtvcp/plugins/widgets_plugin.py +++ b/lib/python/qtvcp/plugins/widgets_plugin.py @@ -1,7 +1,7 @@ #!/usr/bin/env python3 -from PyQt5 import QtGui -from PyQt5.QtDesigner import QPyDesignerCustomWidgetPlugin +from qtpy import QtGui +from qtpy.QtDesigner import QPyDesignerCustomWidgetPlugin from qtvcp.widgets.dro_widget import DROLabel from qtvcp.widgets.user_dro_label import UserDROLabel from qtvcp.widgets.mdi_line import MDILine diff --git a/lib/python/qtvcp/qt_action.py b/lib/python/qtvcp/qt_action.py index 2c5f18cedb0..20c803fe858 100644 --- a/lib/python/qtvcp/qt_action.py +++ b/lib/python/qtvcp/qt_action.py @@ -2,10 +2,10 @@ import math import subprocess from time import sleep -from PyQt5.QtWidgets import (QApplication, QTabWidget, QStackedWidget, +from qtpy.QtWidgets import (QApplication, QTabWidget, QStackedWidget, QWidget, QGridLayout,QGraphicsBlurEffect, QGraphicsDropShadowEffect, QGraphicsColorizeEffect) -from PyQt5.QtCore import Qt, QProcess +from qtpy.QtCore import Qt, QProcess import linuxcnc diff --git a/lib/python/qtvcp/qt_halobjects.py b/lib/python/qtvcp/qt_halobjects.py index 5e1080d8117..64b5bb0d28e 100644 --- a/lib/python/qtvcp/qt_halobjects.py +++ b/lib/python/qtvcp/qt_halobjects.py @@ -1,7 +1,7 @@ import hal import _hal import traceback -from PyQt5.QtCore import QObject, QTimer, pyqtSignal +from qtpy.QtCore import QObject, QTimer, Signal # Set up logging from common import logger @@ -10,9 +10,9 @@ class QPin(hal.Pin, QObject): - value_changed = pyqtSignal('PyQt_PyObject')# depreciated - pinValueChanged = pyqtSignal('PyQt_PyObject','PyQt_PyObject') - isDrivenChanged = pyqtSignal('PyQt_PyObject','PyQt_PyObject') + value_changed = Signal('PyQt_PyObject')# depreciated + pinValueChanged = Signal('PyQt_PyObject','PyQt_PyObject') + isDrivenChanged = Signal('PyQt_PyObject','PyQt_PyObject') REGISTRY = [] UPDATE = False @@ -86,7 +86,7 @@ def update_stop(cls): # so errors when making QPins aren't fatal class DummyPin(QObject): - value_changed = pyqtSignal('PyQt_PyObject') + value_changed = Signal('PyQt_PyObject') def __init__(self, *a, **kw): super(DummyPin, self).__init__(None) diff --git a/lib/python/qtvcp/qt_makegui.py b/lib/python/qtvcp/qt_makegui.py index 2bad32c4ad6..38705507222 100644 --- a/lib/python/qtvcp/qt_makegui.py +++ b/lib/python/qtvcp/qt_makegui.py @@ -2,7 +2,7 @@ import sys import subprocess -from PyQt5 import QtGui, QtCore, QtWidgets, uic +from qtpy import QtGui, QtCore, QtWidgets, uic import traceback from qtvcp.widgets.widget_baseclass import _HalWidgetBase # Set up logging diff --git a/lib/python/qtvcp/qt_makepins.py b/lib/python/qtvcp/qt_makepins.py index a5f86f8a3e3..146c77236d2 100644 --- a/lib/python/qtvcp/qt_makepins.py +++ b/lib/python/qtvcp/qt_makepins.py @@ -20,8 +20,8 @@ import os from qtvcp.widgets.simple_widgets import _HalWidgetBase from qtvcp.widgets.screen_options import ScreenOptions -from PyQt5.QtCore import QObject -from PyQt5.QtWidgets import QDesktopWidget +from qtpy.QtCore import QObject +from qtpy.QtWidgets import QDesktopWidget from qtvcp.core import Info diff --git a/lib/python/qtvcp/qt_pstat.py b/lib/python/qtvcp/qt_pstat.py index 8ccba4b7cd4..47ef2520cb6 100644 --- a/lib/python/qtvcp/qt_pstat.py +++ b/lib/python/qtvcp/qt_pstat.py @@ -18,7 +18,7 @@ import os import sys -from PyQt5 import QtCore +from qtpy import QtCore # Set up logging from . import logger diff --git a/lib/python/qtvcp/widgets/action_button.py b/lib/python/qtvcp/widgets/action_button.py index df0a24f18c6..c78539b6dbe 100644 --- a/lib/python/qtvcp/widgets/action_button.py +++ b/lib/python/qtvcp/widgets/action_button.py @@ -19,7 +19,7 @@ # In the designer editor, it is possible to select what the button will do. ############################################################################### -from PyQt5 import QtCore +from qtpy import QtCore import linuxcnc from qtvcp.widgets.widget_baseclass import _HalWidgetBase @@ -753,11 +753,11 @@ def action(self, state=None): state = not self._indicator_state self.python_command(state) - @QtCore.pyqtSlot(int,name='setRunFromLine') + @QtCore.Slot(int,name='setRunFromLine') def updateRunFromLine(self, data): self._run_from_line_int = int(data) - @QtCore.pyqtSlot(str,name='setRunFromLine') + @QtCore.Slot(str,name='setRunFromLine') def updateRunFromLine(self, data): try: self._run_from_line_int = int(data) @@ -883,7 +883,7 @@ def setMDILabel(self): ######################################################################### # This is how designer can interact with our widget properties. - # designer will show the pyqtProperty properties in the editor + # designer will show the Property properties in the editor # it will use the get set and reset calls to do those actions # # _toggle_properties makes it so we can only select one option @@ -1556,76 +1556,76 @@ def reset_ini_mdi_key(self): # designer will show these properties in this order: # BOOL - no_action = QtCore.pyqtProperty(bool, get_no_action, set_no_action, reset_no_action) - estop_action = QtCore.pyqtProperty(bool, get_estop, set_estop, reset_estop) - machine_on_action = QtCore.pyqtProperty(bool, get_machine_on, set_machine_on, reset_machine_on) - auto_action = QtCore.pyqtProperty(bool, get_auto, set_auto, reset_auto) - mdi_action = QtCore.pyqtProperty(bool, get_mdi, set_mdi, reset_mdi) - manual_action = QtCore.pyqtProperty(bool, get_manual, set_manual, reset_manual) - run_action = QtCore.pyqtProperty(bool, get_run, set_run, reset_run) - run_from_status_action = QtCore.pyqtProperty(bool, get_run_from_status, set_run_from_status, reset_run_from_status) - run_from_slot_action = QtCore.pyqtProperty(bool, get_run_from_slot, set_run_from_slot, reset_run_from_slot) - abort_action = QtCore.pyqtProperty(bool, get_abort, set_abort, reset_abort) - pause_action = QtCore.pyqtProperty(bool, get_pause, set_pause, reset_pause) - step_action = QtCore.pyqtProperty(bool, get_step, set_step, reset_step) - load_dialog_action = QtCore.pyqtProperty(bool, get_load_dialog, set_load_dialog, reset_load_dialog) - camview_dialog_action = QtCore.pyqtProperty(bool, + no_action = QtCore.Property(bool, get_no_action, set_no_action, reset_no_action) + estop_action = QtCore.Property(bool, get_estop, set_estop, reset_estop) + machine_on_action = QtCore.Property(bool, get_machine_on, set_machine_on, reset_machine_on) + auto_action = QtCore.Property(bool, get_auto, set_auto, reset_auto) + mdi_action = QtCore.Property(bool, get_mdi, set_mdi, reset_mdi) + manual_action = QtCore.Property(bool, get_manual, set_manual, reset_manual) + run_action = QtCore.Property(bool, get_run, set_run, reset_run) + run_from_status_action = QtCore.Property(bool, get_run_from_status, set_run_from_status, reset_run_from_status) + run_from_slot_action = QtCore.Property(bool, get_run_from_slot, set_run_from_slot, reset_run_from_slot) + abort_action = QtCore.Property(bool, get_abort, set_abort, reset_abort) + pause_action = QtCore.Property(bool, get_pause, set_pause, reset_pause) + step_action = QtCore.Property(bool, get_step, set_step, reset_step) + load_dialog_action = QtCore.Property(bool, get_load_dialog, set_load_dialog, reset_load_dialog) + camview_dialog_action = QtCore.Property(bool, get_camview_dialog, set_camview_dialog, reset_camview_dialog) - origin_offset_dialog_action = QtCore.pyqtProperty(bool, + origin_offset_dialog_action = QtCore.Property(bool, get_origin_offset_dialog, set_origin_offset_dialog, reset_origin_offset_dialog) - tool_offset_dialog_action = QtCore.pyqtProperty(bool, + tool_offset_dialog_action = QtCore.Property(bool, get_tool_offset_dialog, set_tool_offset_dialog, reset_tool_offset_dialog) - tool_chooser_dialog_action = QtCore.pyqtProperty(bool, + tool_chooser_dialog_action = QtCore.Property(bool, get_tool_chooser_dialog, set_tool_chooser_dialog, reset_tool_chooser_dialog) - macro_dialog_action = QtCore.pyqtProperty(bool, get_macro_dialog, set_macro_dialog, reset_macro_dialog) - launch_halmeter_action = QtCore.pyqtProperty(bool, get_launch_halmeter, set_launch_halmeter, reset_launch_halmeter) - launch_status_action = QtCore.pyqtProperty(bool, get_launch_status, set_launch_status, reset_launch_status) - launch_halshow_action = QtCore.pyqtProperty(bool, get_launch_halshow, set_launch_halshow, reset_launch_halshow) - launch_halscope_action = QtCore.pyqtProperty(bool, get_launch_halscope, set_launch_halscope, reset_launch_halscope) - launch_calibration_action = QtCore.pyqtProperty(bool, get_launch_calibration, set_launch_calibration, reset_launch_calibration) - home_action = QtCore.pyqtProperty(bool, get_home, set_home, reset_home) - unhome_action = QtCore.pyqtProperty(bool, get_unhome, set_unhome, reset_unhome) - home_select_action = QtCore.pyqtProperty(bool, get_home_select, set_home_select, reset_home_select) - unhome_select_action = QtCore.pyqtProperty(bool, get_unhome_select, set_unhome_select, reset_unhome_select) - zero_axis_action = QtCore.pyqtProperty(bool, get_zero_axis, set_zero_axis, reset_zero_axis) - zero_g5x_action = QtCore.pyqtProperty(bool, get_zero_g5x, set_zero_g5x, reset_zero_g5x) - zero_g92_action = QtCore.pyqtProperty(bool, get_zero_g92, set_zero_g92, reset_zero_g92) - zero_zrot_action = QtCore.pyqtProperty(bool, get_zero_zrot, set_zero_zrot, reset_zero_zrot) - jog_joint_pos_action = QtCore.pyqtProperty(bool, get_jog_joint_pos, set_jog_joint_pos, reset_jog_joint_pos) - jog_joint_neg_action = QtCore.pyqtProperty(bool, get_jog_joint_neg, set_jog_joint_neg, reset_jog_joint_neg) - jog_selected_pos_action = QtCore.pyqtProperty(bool, get_jog_selected_pos, set_jog_selected_pos, reset_jog_selected_pos) - jog_selected_neg_action = QtCore.pyqtProperty(bool, get_jog_selected_neg, set_jog_selected_neg, reset_jog_selected_neg) - jog_incr_action = QtCore.pyqtProperty(bool, get_jog_incr, set_jog_incr, reset_jog_incr) - jog_rate_action = QtCore.pyqtProperty(bool, get_jog_rate, set_jog_rate, reset_jog_rate) - feed_over_action = QtCore.pyqtProperty(bool, get_feed_over, set_feed_over, reset_feed_over) - rapid_over_action = QtCore.pyqtProperty(bool, get_rapid_over, set_rapid_over, reset_rapid_over) - max_velocity_over_action = QtCore.pyqtProperty(bool, get_max_velocity_over, set_max_velocity_over, reset_max_velocity_over) - spindle_over_action = QtCore.pyqtProperty(bool, get_spindle_over, set_spindle_over, reset_spindle_over) - spindle_fwd_action = QtCore.pyqtProperty(bool, get_spindle_fwd, set_spindle_fwd, reset_spindle_fwd) - spindle_rev_action = QtCore.pyqtProperty(bool, get_spindle_rev, set_spindle_rev, reset_spindle_rev) - spindle_stop_action = QtCore.pyqtProperty(bool, get_spindle_stop, set_spindle_stop, reset_spindle_stop) - spindle_up_action = QtCore.pyqtProperty(bool, get_spindle_up, set_spindle_up, reset_spindle_up) - spindle_down_action = QtCore.pyqtProperty(bool, get_spindle_down, set_spindle_down, reset_spindle_down) - view_change_action = QtCore.pyqtProperty(bool, get_view_change, set_view_change, reset_view_change) - limits_override_action = QtCore.pyqtProperty(bool, get_limits_override, set_limits_override, reset_limits_override) - flood_action = QtCore.pyqtProperty(bool, get_flood, set_flood, reset_flood) - mist_action = QtCore.pyqtProperty(bool, get_mist, set_mist, reset_mist) - block_delete_action = QtCore.pyqtProperty(bool, get_block_delete, set_block_delete, reset_block_delete) - optional_stop_action = QtCore.pyqtProperty(bool, get_optional_stop, set_optional_stop, reset_optional_stop) - mdi_command_action = QtCore.pyqtProperty(bool, get_mdi_command, set_mdi_command, reset_mdi_command) - ini_mdi_command_action = QtCore.pyqtProperty(bool, get_ini_mdi_command, set_ini_mdi_command, reset_ini_mdi_command) - dro_absolute_action = QtCore.pyqtProperty(bool, get_dro_absolute, set_dro_absolute, reset_dro_absolute) - dro_relative_action = QtCore.pyqtProperty(bool, get_dro_relative, set_dro_relative, reset_dro_relative) - dro_dtg_action = QtCore.pyqtProperty(bool, get_dro_dtg, set_dro_dtg, reset_dro_dtg) - exit_action = QtCore.pyqtProperty(bool, get_exit, set_exit, reset_exit) - machine_log_dialog_action = QtCore.pyqtProperty(bool, get_machine_log_dialog, set_machine_log_dialog, reset_machine_log_dialog) - lathe_mirror_x_action = QtCore.pyqtProperty(bool, get_lathe_mirror_x, set_lathe_mirror_x, reset_lathe_mirror_x) - - - home_no_unhome_option = QtCore.pyqtProperty(bool, get_home_no_unhome, set_home_no_unhome, reset_home_no_unhome) + macro_dialog_action = QtCore.Property(bool, get_macro_dialog, set_macro_dialog, reset_macro_dialog) + launch_halmeter_action = QtCore.Property(bool, get_launch_halmeter, set_launch_halmeter, reset_launch_halmeter) + launch_status_action = QtCore.Property(bool, get_launch_status, set_launch_status, reset_launch_status) + launch_halshow_action = QtCore.Property(bool, get_launch_halshow, set_launch_halshow, reset_launch_halshow) + launch_halscope_action = QtCore.Property(bool, get_launch_halscope, set_launch_halscope, reset_launch_halscope) + launch_calibration_action = QtCore.Property(bool, get_launch_calibration, set_launch_calibration, reset_launch_calibration) + home_action = QtCore.Property(bool, get_home, set_home, reset_home) + unhome_action = QtCore.Property(bool, get_unhome, set_unhome, reset_unhome) + home_select_action = QtCore.Property(bool, get_home_select, set_home_select, reset_home_select) + unhome_select_action = QtCore.Property(bool, get_unhome_select, set_unhome_select, reset_unhome_select) + zero_axis_action = QtCore.Property(bool, get_zero_axis, set_zero_axis, reset_zero_axis) + zero_g5x_action = QtCore.Property(bool, get_zero_g5x, set_zero_g5x, reset_zero_g5x) + zero_g92_action = QtCore.Property(bool, get_zero_g92, set_zero_g92, reset_zero_g92) + zero_zrot_action = QtCore.Property(bool, get_zero_zrot, set_zero_zrot, reset_zero_zrot) + jog_joint_pos_action = QtCore.Property(bool, get_jog_joint_pos, set_jog_joint_pos, reset_jog_joint_pos) + jog_joint_neg_action = QtCore.Property(bool, get_jog_joint_neg, set_jog_joint_neg, reset_jog_joint_neg) + jog_selected_pos_action = QtCore.Property(bool, get_jog_selected_pos, set_jog_selected_pos, reset_jog_selected_pos) + jog_selected_neg_action = QtCore.Property(bool, get_jog_selected_neg, set_jog_selected_neg, reset_jog_selected_neg) + jog_incr_action = QtCore.Property(bool, get_jog_incr, set_jog_incr, reset_jog_incr) + jog_rate_action = QtCore.Property(bool, get_jog_rate, set_jog_rate, reset_jog_rate) + feed_over_action = QtCore.Property(bool, get_feed_over, set_feed_over, reset_feed_over) + rapid_over_action = QtCore.Property(bool, get_rapid_over, set_rapid_over, reset_rapid_over) + max_velocity_over_action = QtCore.Property(bool, get_max_velocity_over, set_max_velocity_over, reset_max_velocity_over) + spindle_over_action = QtCore.Property(bool, get_spindle_over, set_spindle_over, reset_spindle_over) + spindle_fwd_action = QtCore.Property(bool, get_spindle_fwd, set_spindle_fwd, reset_spindle_fwd) + spindle_rev_action = QtCore.Property(bool, get_spindle_rev, set_spindle_rev, reset_spindle_rev) + spindle_stop_action = QtCore.Property(bool, get_spindle_stop, set_spindle_stop, reset_spindle_stop) + spindle_up_action = QtCore.Property(bool, get_spindle_up, set_spindle_up, reset_spindle_up) + spindle_down_action = QtCore.Property(bool, get_spindle_down, set_spindle_down, reset_spindle_down) + view_change_action = QtCore.Property(bool, get_view_change, set_view_change, reset_view_change) + limits_override_action = QtCore.Property(bool, get_limits_override, set_limits_override, reset_limits_override) + flood_action = QtCore.Property(bool, get_flood, set_flood, reset_flood) + mist_action = QtCore.Property(bool, get_mist, set_mist, reset_mist) + block_delete_action = QtCore.Property(bool, get_block_delete, set_block_delete, reset_block_delete) + optional_stop_action = QtCore.Property(bool, get_optional_stop, set_optional_stop, reset_optional_stop) + mdi_command_action = QtCore.Property(bool, get_mdi_command, set_mdi_command, reset_mdi_command) + ini_mdi_command_action = QtCore.Property(bool, get_ini_mdi_command, set_ini_mdi_command, reset_ini_mdi_command) + dro_absolute_action = QtCore.Property(bool, get_dro_absolute, set_dro_absolute, reset_dro_absolute) + dro_relative_action = QtCore.Property(bool, get_dro_relative, set_dro_relative, reset_dro_relative) + dro_dtg_action = QtCore.Property(bool, get_dro_dtg, set_dro_dtg, reset_dro_dtg) + exit_action = QtCore.Property(bool, get_exit, set_exit, reset_exit) + machine_log_dialog_action = QtCore.Property(bool, get_machine_log_dialog, set_machine_log_dialog, reset_machine_log_dialog) + lathe_mirror_x_action = QtCore.Property(bool, get_lathe_mirror_x, set_lathe_mirror_x, reset_lathe_mirror_x) + + + home_no_unhome_option = QtCore.Property(bool, get_home_no_unhome, set_home_no_unhome, reset_home_no_unhome) def set_template_label(self, data): self.template_label = data @@ -1633,22 +1633,22 @@ def get_template_label(self): return self.template_label def reset_template_label(self): self.template_label = False - template_label_option = QtCore.pyqtProperty(bool, get_template_label, set_template_label, reset_template_label) + template_label_option = QtCore.Property(bool, get_template_label, set_template_label, reset_template_label) # NON BOOL - joint_number = QtCore.pyqtProperty(int, get_joint, set_joint, reset_joint) - axis_letter = QtCore.pyqtProperty(str, get_axis, set_axis, reset_axis) - incr_imperial_number = QtCore.pyqtProperty(float, get_incr_imperial, set_incr_imperial, reset_incr_imperial) - incr_mm_number = QtCore.pyqtProperty(float, get_incr_mm, set_incr_mm, reset_incr_mm) - incr_angular_number = QtCore.pyqtProperty(float, get_incr_angle, set_incr_angle, reset_incr_angle) - toggle_float_option = QtCore.pyqtProperty(bool, get_toggle_float, set_toggle_float, reset_toggle_float) - float_num = QtCore.pyqtProperty(float, get_float, set_float, reset_float) - float_alt_num = QtCore.pyqtProperty(float, get_float_alt, set_float_alt, reset_float_alt) - view_type_string = QtCore.pyqtProperty(str, get_view_type, set_view_type, reset_view_type) - command_text_string = QtCore.pyqtProperty(str, get_command_text, set_command_text, reset_command_text) - ini_mdi_number = QtCore.pyqtProperty(int, get_ini_mdi_num, set_ini_mdi_num, reset_ini_mdi_num) - ini_mdi_key = QtCore.pyqtProperty(str, get_ini_mdi_key, set_ini_mdi_key, reset_ini_mdi_key) + joint_number = QtCore.Property(int, get_joint, set_joint, reset_joint) + axis_letter = QtCore.Property(str, get_axis, set_axis, reset_axis) + incr_imperial_number = QtCore.Property(float, get_incr_imperial, set_incr_imperial, reset_incr_imperial) + incr_mm_number = QtCore.Property(float, get_incr_mm, set_incr_mm, reset_incr_mm) + incr_angular_number = QtCore.Property(float, get_incr_angle, set_incr_angle, reset_incr_angle) + toggle_float_option = QtCore.Property(bool, get_toggle_float, set_toggle_float, reset_toggle_float) + float_num = QtCore.Property(float, get_float, set_float, reset_float) + float_alt_num = QtCore.Property(float, get_float_alt, set_float_alt, reset_float_alt) + view_type_string = QtCore.Property(str, get_view_type, set_view_type, reset_view_type) + command_text_string = QtCore.Property(str, get_command_text, set_command_text, reset_command_text) + ini_mdi_number = QtCore.Property(int, get_ini_mdi_num, set_ini_mdi_num, reset_ini_mdi_num) + ini_mdi_key = QtCore.Property(str, get_ini_mdi_key, set_ini_mdi_key, reset_ini_mdi_key) def set_textTemplate(self, data): self._textTemplate = data @@ -1657,7 +1657,7 @@ def get_textTemplate(self): return self._textTemplate def reset_textTemplate(self): self._textTemplate = '%1.3f in' - textTemplate = QtCore.pyqtProperty(str, get_textTemplate, set_textTemplate, reset_textTemplate) + textTemplate = QtCore.Property(str, get_textTemplate, set_textTemplate, reset_textTemplate) def set_alt_textTemplate(self, data): self._alt_textTemplate = data @@ -1665,7 +1665,7 @@ def get_alt_textTemplate(self): return self._alt_textTemplate def reset_alt_textTemplate(self): self._alt_textTemplate = '%1.2f mm' - alt_textTemplate = QtCore.pyqtProperty(str, get_alt_textTemplate, set_alt_textTemplate, reset_alt_textTemplate) + alt_textTemplate = QtCore.Property(str, get_alt_textTemplate, set_alt_textTemplate, reset_alt_textTemplate) ############################## # required class boiler code # @@ -1679,7 +1679,7 @@ def __setitem__(self, item, value): if __name__ == "__main__": import sys - from PyQt5.QtWidgets import QApplication + from qtpy.QtWidgets import QApplication app = QApplication(sys.argv) widget = ActionButton('Action') diff --git a/lib/python/qtvcp/widgets/action_button_round.py b/lib/python/qtvcp/widgets/action_button_round.py index c43ccba62d7..56b270c9ceb 100644 --- a/lib/python/qtvcp/widgets/action_button_round.py +++ b/lib/python/qtvcp/widgets/action_button_round.py @@ -20,7 +20,7 @@ # In the designer editor, it is possible to select what the button will do. ############################################################################### -from PyQt5 import QtGui, QtCore +from qtpy import QtGui, QtCore from qtvcp.widgets.action_button import ActionButton @@ -55,7 +55,7 @@ def paintEvent(self, event): ######################################################################### # This is how designer can interact with our widget properties. - # designer will show the pyqtProperty properties in the editor + # designer will show the Property properties in the editor # it will use the get set and reset calls to do those actions ######################################################################### @@ -73,13 +73,13 @@ def getFalseImagePath(self): def resetFalseImagePath(self): self.false_pixmap - image_path = QtCore.pyqtProperty(QtGui.QPixmap, getImagePath, setImagePath, resetImagePath) - false_image_path = QtCore.pyqtProperty(QtGui.QPixmap, getFalseImagePath, setFalseImagePath, resetFalseImagePath) + image_path = QtCore.Property(QtGui.QPixmap, getImagePath, setImagePath, resetImagePath) + false_image_path = QtCore.Property(QtGui.QPixmap, getFalseImagePath, setFalseImagePath, resetFalseImagePath) # for testing without editor: def main(): import sys - from PyQt5.QtWidgets import QApplication + from qtpy.QtWidgets import QApplication app = QApplication(sys.argv) widget = RoundButton() widget.show() diff --git a/lib/python/qtvcp/widgets/action_tool_button.py b/lib/python/qtvcp/widgets/action_tool_button.py index bc133649167..f7540f2d524 100644 --- a/lib/python/qtvcp/widgets/action_tool_button.py +++ b/lib/python/qtvcp/widgets/action_tool_button.py @@ -14,10 +14,10 @@ # GNU General Public License for more details. ############################################################################### -from PyQt5.QtWidgets import (QToolButton, QMenu, QAction, +from qtpy.QtWidgets import (QToolButton, QMenu, QAction, QComboBox, QWidgetAction) -from PyQt5.QtCore import pyqtProperty -from PyQt5.QtGui import QIcon +from qtpy.QtCore import Property +from qtpy.QtGui import QIcon from qtvcp.widgets.widget_baseclass import _HalWidgetBase from qtvcp.widgets.indicatorMixIn import IndicatedMixIn @@ -206,7 +206,7 @@ def conversion(self, data, metric = True): ######################################################################### # This is how designer can interact with our widget properties. - # designer will show the pyqtProperty properties in the editor + # designer will show the Property properties in the editor # it will use the get set and reset calls to do those actions # ######################################################################## @@ -216,19 +216,19 @@ def setViewAction(self, state): self._userView = state def getViewAction(self): return self._userView - userViewAction = pyqtProperty(bool, getViewAction, setViewAction) + userViewAction = Property(bool, getViewAction, setViewAction) # option menu def setOptionMenu(self, state): self._optionMenu = state def getOptionMenu(self): return self._optionMenu - OptionMenuAction = pyqtProperty(bool, getOptionMenu, setOptionMenu) + OptionMenuAction = Property(bool, getOptionMenu, setOptionMenu) # for testing without editor: def main(): import sys - from PyQt5.QtWidgets import QApplication + from qtpy.QtWidgets import QApplication app = QApplication(sys.argv) widget = ActionToolButton() widget.show() diff --git a/lib/python/qtvcp/widgets/adjustment_bar.py b/lib/python/qtvcp/widgets/adjustment_bar.py index b1fbdf514e4..bdd6fd58182 100644 --- a/lib/python/qtvcp/widgets/adjustment_bar.py +++ b/lib/python/qtvcp/widgets/adjustment_bar.py @@ -14,9 +14,9 @@ # GNU General Public License for more details. ############################################################################### -from PyQt5.QtWidgets import QWidget, QProgressBar, QToolButton, QHBoxLayout, QMenu, QAction -from PyQt5.QtCore import Qt, pyqtProperty, QBasicTimer, pyqtSignal -from PyQt5.QtGui import QPainter, QFont, QIcon +from qtpy.QtWidgets import QWidget, QProgressBar, QToolButton, QHBoxLayout, QMenu, QAction +from qtpy.QtCore import Qt, Property, QBasicTimer, Signal +from qtpy.QtGui import QPainter, QFont, QIcon from qtvcp.widgets.widget_baseclass import _HalWidgetBase from qtvcp.core import Status, Action, Info @@ -65,7 +65,7 @@ def drawText(self, qp): class HAdjustmentBar(QWidget): - valueChanged = pyqtSignal(int) + valueChanged = Signal(int) def __init__(self, parent=None): super(HAdjustmentBar, self).__init__(parent) self.value = 50 @@ -266,7 +266,7 @@ def _action(self, value): LOG.error('{} no action recognised'.format(self.HAL_NAME_)) ######################################################################### # This is how designer can interact with our widget properties. - # designer will show the pyqtProperty properties in the editor + # designer will show the Property properties in the editor # it will use the get set and reset calls to do those actions # # _toggle_properties makes it so we can only select one option @@ -364,17 +364,17 @@ def getsteprate(self): def resetsteprate(self): self.steprate = 1 - rapid_rate = pyqtProperty(bool, getrapid, setrapid, resetrapid) - feed_rate = pyqtProperty(bool, getfeed, setfeed, resetfeed) - spindle_rate = pyqtProperty(bool, getspindle, setspindle, resetspindle) - jograte_rate = pyqtProperty(bool, getjograte, setjograte, resetjograte) - jograte_angular_rate = pyqtProperty(bool, getjograteangular, setjograteangular, resetjograteangular) - max_velocity_rate = pyqtProperty(bool, getmaxv, setmaxv, resetmaxv) - show_toggle_button = pyqtProperty(bool, getshowtoggle, setshowtoggle, resetshowtoggle) - show_setting_menu = pyqtProperty(bool, getsettingmenu, setsettingmenu, resetsettingmenu) + rapid_rate = Property(bool, getrapid, setrapid, resetrapid) + feed_rate = Property(bool, getfeed, setfeed, resetfeed) + spindle_rate = Property(bool, getspindle, setspindle, resetspindle) + jograte_rate = Property(bool, getjograte, setjograte, resetjograte) + jograte_angular_rate = Property(bool, getjograteangular, setjograteangular, resetjograteangular) + max_velocity_rate = Property(bool, getmaxv, setmaxv, resetmaxv) + show_toggle_button = Property(bool, getshowtoggle, setshowtoggle, resetshowtoggle) + show_setting_menu = Property(bool, getsettingmenu, setsettingmenu, resetsettingmenu) - text_template = pyqtProperty(str, gettexttemplate, settexttemplate, resettexttemplate) - step_rate = pyqtProperty(int, getsteprate, setsteprate, resetsteprate) + text_template = Property(str, gettexttemplate, settexttemplate, resettexttemplate) + step_rate = Property(int, getsteprate, setsteprate, resetsteprate) ############################## # required class boiler code # @@ -388,7 +388,7 @@ def __setitem__(self, item, value): # for testing without editor: def main(): import sys - from PyQt5.QtWidgets import QApplication + from qtpy.QtWidgets import QApplication app = QApplication(sys.argv) widget = StatusAdjustmentBar() widget.PREFS_=None diff --git a/lib/python/qtvcp/widgets/axisPickTool_button.py b/lib/python/qtvcp/widgets/axisPickTool_button.py index 47dd6e64216..a39f203dbad 100644 --- a/lib/python/qtvcp/widgets/axisPickTool_button.py +++ b/lib/python/qtvcp/widgets/axisPickTool_button.py @@ -1,7 +1,7 @@ -from PyQt5.QtWidgets import (QToolButton, QMenu, QAction, +from qtpy.QtWidgets import (QToolButton, QMenu, QAction, QComboBox, QWidgetAction, QSizePolicy) -from PyQt5.QtCore import pyqtProperty, pyqtSignal -from PyQt5.QtGui import QIcon +from qtpy.QtCore import Property, Signal +from qtpy.QtGui import QIcon from qtvcp.widgets.widget_baseclass import _HalWidgetBase from qtvcp.widgets.indicatorMixIn import IndicatedMixIn @@ -22,8 +22,8 @@ #LOG.setLevel(logger.DEBUG) # One of DEBUG, INFO, WARNING, ERROR, CRITICAL class AxisPickToolButton(QToolButton, IndicatedMixIn): - AxisSelected = pyqtSignal(str) - CurrentAxisPosition = pyqtSignal(str,float) + AxisSelected = Signal(str) + CurrentAxisPosition = Signal(str,float) def __init__(self, parent=None): super(AxisPickToolButton, self).__init__(parent) @@ -78,7 +78,7 @@ def getTextTemplate(self): return self._textTemplate def resetTextTemplate(self): self._textTemplate = 'Axis: %s' - textTemplate = pyqtProperty(str, getTextTemplate, setTextTemplate, resetTextTemplate) + textTemplate = Property(str, getTextTemplate, setTextTemplate, resetTextTemplate) def setCurrentAxis(self, data): self._currentAxis = data @@ -86,5 +86,5 @@ def getCurrentAxis(self): return self._currentAxis def resetCurrentAxis(self): self._currentAxis = 'X' - currentAxis = pyqtProperty(str, getCurrentAxis, setCurrentAxis, resetCurrentAxis) + currentAxis = Property(str, getCurrentAxis, setCurrentAxis, resetCurrentAxis) diff --git a/lib/python/qtvcp/widgets/axis_tool_button.py b/lib/python/qtvcp/widgets/axis_tool_button.py index 4bbca31d3fd..aa78f479eeb 100644 --- a/lib/python/qtvcp/widgets/axis_tool_button.py +++ b/lib/python/qtvcp/widgets/axis_tool_button.py @@ -16,9 +16,9 @@ import hal -from PyQt5.QtWidgets import QToolButton, QMenu, QAction -from PyQt5.QtCore import pyqtProperty -from PyQt5.QtGui import QIcon +from qtpy.QtWidgets import QToolButton, QMenu, QAction +from qtpy.QtCore import Property +from qtpy.QtGui import QIcon from qtvcp.widgets.widget_baseclass import _HalWidgetBase from qtvcp.widgets.indicatorMixIn import IndicatedMixIn @@ -289,7 +289,7 @@ def _switch_units(self, widget, data): ######################################################################### # This is how designer can interact with our widget properties. - # designer will show the pyqtProperty properties in the editor + # designer will show the Property properties in the editor # it will use the get set and reset calls to do those actions # ######################################################################## @@ -302,7 +302,7 @@ def get_joint(self): return self._joint def reset_joint(self): self._joint = -1 - joint_number = pyqtProperty(int, get_joint, set_joint, reset_joint) + joint_number = Property(int, get_joint, set_joint, reset_joint) def set_axis(self, data): if data.upper() in('X','Y','Z','A','B','C','U','V','W'): @@ -318,7 +318,7 @@ def get_axis(self): return self._axis def reset_axis(self): self._axis = 'X' - axis_letter = pyqtProperty(str, get_axis, set_axis, reset_axis) + axis_letter = Property(str, get_axis, set_axis, reset_axis) def set_halpin_option(self, value): self._halpin_option = value @@ -326,7 +326,7 @@ def get_halpin_option(self): return self._halpin_option def reset_halpin_option(self): self._halpin_option = True - halpin_option = pyqtProperty(bool, get_halpin_option, set_halpin_option, reset_halpin_option) + halpin_option = Property(bool, get_halpin_option, set_halpin_option, reset_halpin_option) def set_dialog_code(self, data): self.dialog_code = data @@ -334,7 +334,7 @@ def get_dialog_code(self): return self.dialog_code def reset_dialog_code(self): self.dialog_code = 'ENTRY' - dialog_code_string = pyqtProperty(str, get_dialog_code, set_dialog_code, reset_dialog_code) + dialog_code_string = Property(str, get_dialog_code, set_dialog_code, reset_dialog_code) #################### ## menu properties @@ -347,7 +347,7 @@ def get_showSet(self): return self._showSet def reset_showSet(self): self._showSet = True - showSetOrigin = pyqtProperty(bool, get_showSet, set_showSet, reset_showSet) + showSetOrigin = Property(bool, get_showSet, set_showSet, reset_showSet) def set_showZero(self, data): self._showZero = data @@ -356,7 +356,7 @@ def get_showZero(self): return self._showZero def reset_showZero(self): self._showZero = True - showZeroOrigin = pyqtProperty(bool, get_showZero, set_showZero, reset_showZero) + showZeroOrigin = Property(bool, get_showZero, set_showZero, reset_showZero) def set_showGoto(self, data): self._showGoto = data @@ -366,7 +366,7 @@ def get_showGoto(self): return self._showGoto def reset_showGoto(self): self._showGoto = False - showGotoOrigin = pyqtProperty(bool, get_showGoto, set_showGoto, reset_showGoto) + showGotoOrigin = Property(bool, get_showGoto, set_showGoto, reset_showGoto) def set_showLast(self, data): self._showLast = data @@ -375,7 +375,7 @@ def get_showLast(self): return self._showLast def reset_showLast(self): self._showLast = True - showLast = pyqtProperty(bool, get_showLast, set_showLast, reset_showLast) + showLast = Property(bool, get_showLast, set_showLast, reset_showLast) def set_showDivide(self, data): self._showDivide = data @@ -384,7 +384,7 @@ def get_showDivide(self): return self._showDivide def reset_showDivide(self): self._showDivide = True - showDivide = pyqtProperty(bool, get_showDivide, set_showDivide, reset_showDivide) + showDivide = Property(bool, get_showDivide, set_showDivide, reset_showDivide) def __getitem__(self, item): return getattr(self, item) @@ -394,7 +394,7 @@ def __setitem__(self, item, value): # for testing without editor: def main(): import sys - from PyQt5.QtWidgets import QApplication + from qtpy.QtWidgets import QApplication app = QApplication(sys.argv) widget = AxisToolButton() widget.show() diff --git a/lib/python/qtvcp/widgets/bar.py b/lib/python/qtvcp/widgets/bar.py index 0d3f130952a..f23d383da5a 100644 --- a/lib/python/qtvcp/widgets/bar.py +++ b/lib/python/qtvcp/widgets/bar.py @@ -1,13 +1,13 @@ -from PyQt5 import QtWidgets -from PyQt5.QtGui import QColor, QBrush, QPainter, QLinearGradient -from PyQt5.QtCore import (Qt, pyqtSlot, pyqtProperty, pyqtSignal, QVariant, QRectF, +from qtpy import QtWidgets +from qtpy.QtGui import QColor, QBrush, QPainter, QLinearGradient +from qtpy.QtCore import (Qt, Slot, Property, Signal, QVariant, QRectF, QSize) try: - from PyQt5.QtCore import Q_ENUM + from qtpy.QtCore import Q_ENUM except: # before Qt 5.10 - from PyQt5.QtCore import Q_ENUMS as Q_ENUM + from qtpy.QtCore import Q_ENUMS as Q_ENUM from qtvcp.widgets.widget_baseclass import _HalWidgetBase import hal @@ -20,7 +20,7 @@ #LOG.setLevel(logger.DEBUG) # One of DEBUG, INFO, WARNING, ERROR, CRITICAL class Bar(QtWidgets.QWidget): - valueChanged = pyqtSignal([int],[float]) + valueChanged = Signal([int],[float]) def __init__(self, *args, **kwargs): super().__init__(*args, **kwargs) @@ -267,8 +267,8 @@ def setSteps(self, steps): def value(self): return self._value - @pyqtSlot(float) - @pyqtSlot(int) + @Slot(float) + @Slot(int) def setValue(self, data): if data != self._value: if data > self._maximum: data = self._maximum @@ -314,7 +314,7 @@ def resetInvertedAppearance(self, data): ######################################################################### # This is how designer can interact with our widget properties. - # designer will show the pyqtProperty properties in the editor + # designer will show the Property properties in the editor # it will use the get set and reset calls to do those actions ######################################################################## @@ -332,14 +332,14 @@ def reset_step_color_l(self): def getBackgroundColor(self): return self._background_color - @pyqtSlot(QColor) + @Slot(QColor) def setBackgroundColor(self, value): self._background_color = value self.update() def get_indicatorColor(self): return self._singleIndicatorColor - @pyqtSlot(QColor) + @Slot(QColor) def set_indicatorColor(self, value): self._singleIndicatorColor = value self.update() @@ -390,18 +390,18 @@ def resetVert(self): self._vertical = False self.update() - stepColorList = pyqtProperty( + stepColorList = Property( QVariant.typeToName(QVariant.StringList), get_step_color_l, set_step_color_l, reset_step_color_l) - backgroundColor = pyqtProperty(QColor, getBackgroundColor, setBackgroundColor) - indicatorColor = pyqtProperty(QColor, get_indicatorColor, set_indicatorColor, reset_indicatorColor) - useMultiColorIndicator = pyqtProperty(bool, getMultiColor, setMultiColor, resetMultiColor) - split = pyqtProperty(int, getSplit, setSplit, resetSplit) - setMaximum = pyqtProperty(int, getMax, setMax, resetMax) - setMinimum = pyqtProperty(int, getMin, setMin, resetMin) - setVertical = pyqtProperty(bool, getVert, setVert, resetVert) - setInverted = pyqtProperty(bool, getInvertedAppearance, setInvertedAppearance, resetInvertedAppearance) + backgroundColor = Property(QColor, getBackgroundColor, setBackgroundColor) + indicatorColor = Property(QColor, get_indicatorColor, set_indicatorColor, reset_indicatorColor) + useMultiColorIndicator = Property(bool, getMultiColor, setMultiColor, resetMultiColor) + split = Property(int, getSplit, setSplit, resetSplit) + setMaximum = Property(int, getMax, setMax, resetMax) + setMinimum = Property(int, getMin, setMin, resetMin) + setVertical = Property(bool, getVert, setVert, resetVert) + setInverted = Property(bool, getInvertedAppearance, setInvertedAppearance, resetInvertedAppearance) class HALPinType: NONE = 0 @@ -469,12 +469,12 @@ def get_invert_negative(self): def reset_invert_negative(self): self._invert_negative = False - pinType = pyqtProperty(HALPinType, get_pin_type, set_pin_type, reset_pin_type) - pinName = pyqtProperty(str, get_pin_name, set_pin_name, reset_pin_name) - invertOnNegative = pyqtProperty(bool, get_invert_negative, set_invert_negative, reset_invert_negative) + pinType = Property(HALPinType, get_pin_type, set_pin_type, reset_pin_type) + pinName = Property(str, get_pin_name, set_pin_name, reset_pin_name) + invertOnNegative = Property(bool, get_invert_negative, set_invert_negative, reset_invert_negative) if __name__ == '__main__': - from PyQt5.QtWidgets import (QLabel, QSlider, QWidget, QVBoxLayout, + from qtpy.QtWidgets import (QLabel, QSlider, QWidget, QVBoxLayout, QHBoxLayout, QPushButton, QCheckBox) app = QtWidgets.QApplication([]) diff --git a/lib/python/qtvcp/widgets/basic_probe.py b/lib/python/qtvcp/widgets/basic_probe.py index 88deca6f6df..dc192f02645 100644 --- a/lib/python/qtvcp/widgets/basic_probe.py +++ b/lib/python/qtvcp/widgets/basic_probe.py @@ -19,9 +19,9 @@ import os import hal import json -from PyQt5.QtCore import QProcess, QRegExp, QFile, QEvent, Qt, pyqtProperty -from PyQt5 import QtGui, QtWidgets, uic, QtCore -from PyQt5.QtWidgets import QDialogButtonBox, QAbstractSlider, QLineEdit, qApp +from qtpy.QtCore import QProcess, QRegExp, QFile, QEvent, Qt, Property +from qtpy import QtGui, QtWidgets, uic, QtCore +from qtpy.QtWidgets import QDialogButtonBox, QAbstractSlider, QLineEdit, qApp from qtvcp.widgets.widget_baseclass import _HalWidgetBase from qtvcp.core import Action, Status, Info, Path from qtvcp.widgets.dialogMixin import GeometryMixin @@ -512,7 +512,7 @@ def set_checkableButtons(self, state): ######################################################################### # This is how designer can interact with our widget properties. - # designer will show the pyqtProperty properties in the editor + # designer will show the Property properties in the editor # it will use the get set and reset calls to do those actions ######################################################################### @@ -522,7 +522,7 @@ def get_dialog_code(self): return self.dialog_code def reset_dialog_code(self): self.dialog_code = 'CALCULATOR' - dialogCodeString = pyqtProperty(str, get_dialog_code, set_dialog_code, reset_dialog_code) + dialogCodeString = Property(str, get_dialog_code, set_dialog_code, reset_dialog_code) def set_runImmediately(self, data): self._runImmediately = data @@ -533,7 +533,7 @@ def reset_runImmediately(self): self._runImmediately = True # toggle run on button push or run on function call - runImmediately = pyqtProperty(bool, get_runImmediately, set_runImmediately, reset_runImmediately) + runImmediately = Property(bool, get_runImmediately, set_runImmediately, reset_runImmediately) ############################## # required class boiler code # @@ -679,9 +679,9 @@ def __init__(self, parent=None): # Testing # ############################# if __name__ == "__main__": - from PyQt5.QtWidgets import * - from PyQt5.QtCore import * - from PyQt5.QtGui import * + from qtpy.QtWidgets import * + from qtpy.QtCore import * + from qtpy.QtGui import * app = QtWidgets.QApplication(sys.argv) w = BasicProbe() w.show() diff --git a/lib/python/qtvcp/widgets/calculator.py b/lib/python/qtvcp/widgets/calculator.py index 864a5e79e35..afdbf3820d1 100644 --- a/lib/python/qtvcp/widgets/calculator.py +++ b/lib/python/qtvcp/widgets/calculator.py @@ -2,13 +2,13 @@ import math import sys -from PyQt5.QtCore import Qt -from PyQt5.QtWidgets import (QApplication, QGridLayout, QLayout, QLineEdit, +from qtpy.QtCore import Qt +from qtpy.QtWidgets import (QApplication, QGridLayout, QLayout, QLineEdit, QSizePolicy, QPushButton, QDialog, QDialogButtonBox, QMenu, QAction, QVBoxLayout, QToolButton, QLabel) -from PyQt5.QtGui import QDoubleValidator -from PyQt5.QtGui import QIcon -from PyQt5 import QtCore +from qtpy.QtGui import QDoubleValidator +from qtpy.QtGui import QIcon +from qtpy import QtCore from qtvcp.core import Status, Info STATUS = Status() INFO = Info() @@ -18,10 +18,10 @@ class CalculatorLineEdit(QLineEdit): - operatorKeyPressed = QtCore.pyqtSignal(str) - digitKeyPressed = QtCore.pyqtSignal(str) - fieldKeyPressed = QtCore.pyqtSignal(str) - cancelKeyPressed = QtCore.pyqtSignal() + operatorKeyPressed = QtCore.Signal(str) + digitKeyPressed = QtCore.Signal(str) + fieldKeyPressed = QtCore.Signal(str) + cancelKeyPressed = QtCore.Signal() def __init__(self, parent=None): super(CalculatorLineEdit, self).__init__(parent) diff --git a/lib/python/qtvcp/widgets/camview_widget.py b/lib/python/qtvcp/widgets/camview_widget.py index be452220ba9..cf7c0fbf04b 100644 --- a/lib/python/qtvcp/widgets/camview_widget.py +++ b/lib/python/qtvcp/widgets/camview_widget.py @@ -20,8 +20,8 @@ import hal -from PyQt5 import QtWidgets, QtCore -from PyQt5.QtGui import QColor, QFont, QPainter, QPen, QImage +from qtpy import QtWidgets, QtCore +from qtpy.QtGui import QColor, QFont, QPainter, QPen, QImage from qtvcp.widgets.widget_baseclass import _HalWidgetBase from qtvcp import logger @@ -473,7 +473,7 @@ def setResolution(self, data): ######################################################################### # This is how designer can interact with our widget properties. - # designer will show the pyqtProperty properties in the editor + # designer will show the Property properties in the editor # it will use the get set and reset calls to do those actions # # These can also be set as WIDGET.setProperty('property_name', data) @@ -493,8 +493,8 @@ def get_camnum(self): def reset_camnum(self): self._camNum = 0 # designer will show these properties in this order: - block_wheel_rotation = QtCore.pyqtProperty(bool, get_wheel_rotation, set_wheel_rotation, reset_wheel_rotation) - camera_number = QtCore.pyqtProperty(int, get_camnum, set_camnum, reset_camnum) + block_wheel_rotation = QtCore.Property(bool, get_wheel_rotation, set_wheel_rotation, reset_wheel_rotation) + camera_number = QtCore.Property(int, get_camnum, set_camnum, reset_camnum) class WebcamVideoStream: def __init__(self, src=0, api=DEFAULT_API, res=None): @@ -705,9 +705,9 @@ def drawText(self, event, qp): if __name__ == '__main__': import sys - from PyQt5.QtWidgets import (QLabel, QSlider, QDial,QWidget, QVBoxLayout, + from qtpy.QtWidgets import (QLabel, QSlider, QDial,QWidget, QVBoxLayout, QHBoxLayout) - from PyQt5.QtCore import (Qt) + from qtpy.QtCore import (Qt) def hDialMoved(): print("Dial value = %i" % (hdial.value())) diff --git a/lib/python/qtvcp/widgets/container_widgets.py b/lib/python/qtvcp/widgets/container_widgets.py index 909f92af081..322dffe5410 100644 --- a/lib/python/qtvcp/widgets/container_widgets.py +++ b/lib/python/qtvcp/widgets/container_widgets.py @@ -17,8 +17,8 @@ import os import linuxcnc -from PyQt5.QtWidgets import QWidget -from PyQt5.QtCore import pyqtProperty +from qtpy.QtWidgets import QWidget +from qtpy.QtCore import Property from qtvcp.widgets.widget_baseclass import _HalWidgetBase from qtvcp.core import Status, Info @@ -82,7 +82,7 @@ def get_is_on(self): return self.is_on def reset_is_on(self): self.is_on = False - is_on_status = pyqtProperty(bool, get_is_on, set_is_on, reset_is_on) + is_on_status = Property(bool, get_is_on, set_is_on, reset_is_on) # machine is idle status def set_is_idle(self, data): @@ -93,7 +93,7 @@ def get_is_idle(self): return self.is_idle def reset_is_idle(self): self.is_idle = False - is_idle_status = pyqtProperty(bool, get_is_idle, set_is_idle, reset_is_idle) + is_idle_status = Property(bool, get_is_idle, set_is_idle, reset_is_idle) # machine is not idle status def set_is_not_idle(self, data): @@ -104,7 +104,7 @@ def get_is_not_idle(self): return self.is_not_idle def reset_is_not_idle(self): self.is_not_idle = False - is_not_idle_status = pyqtProperty(bool, get_is_not_idle, set_is_not_idle, reset_is_not_idle) + is_not_idle_status = Property(bool, get_is_not_idle, set_is_not_idle, reset_is_not_idle) # machine is homed status def set_is_homed(self, data): @@ -113,7 +113,7 @@ def get_is_homed(self): return self.is_homed def reset_is_homed(self): self.is_homed = False - is_homed_status = pyqtProperty(bool, get_is_homed, set_is_homed, reset_is_homed) + is_homed_status = Property(bool, get_is_homed, set_is_homed, reset_is_homed) class JointEnableWidget(QWidget, _HalWidgetBase): def __init__(self, parent=None): @@ -143,7 +143,7 @@ def modeChanged(self, mode): ######################################################################### # This is how designer can interact with our widget properties. - # designer will show the pyqtProperty properties in the editor + # designer will show the Property properties in the editor # it will use the get set and reset calls to do those actions # # _toggle_properties makes it so we can only select one option @@ -203,12 +203,12 @@ def get_joint_available(self): def reset_joint_available(self): self.if_joint_available = False - joint_number = pyqtProperty(int, get_joint, set_joint, reset_joint) - axis_letter = pyqtProperty(str, get_axis, set_axis, reset_axis) - only_in_joint_mode = pyqtProperty(bool, get_joint_mode, set_joint_mode, reset_joint_mode) - only_in_axis_mode = pyqtProperty(bool, get_axis_mode, set_axis_mode, reset_axis_mode) - only_if_axis_available = pyqtProperty(bool, get_axis_available, set_axis_available, reset_axis_available) - only_if_joint_available = pyqtProperty(bool, get_joint_available, set_joint_available, reset_joint_available) + joint_number = Property(int, get_joint, set_joint, reset_joint) + axis_letter = Property(str, get_axis, set_axis, reset_axis) + only_in_joint_mode = Property(bool, get_joint_mode, set_joint_mode, reset_joint_mode) + only_in_axis_mode = Property(bool, get_axis_mode, set_axis_mode, reset_axis_mode) + only_if_axis_available = Property(bool, get_axis_available, set_axis_available, reset_axis_available) + only_if_joint_available = Property(bool, get_joint_available, set_joint_available, reset_joint_available) ############################## # required class boiler code # diff --git a/lib/python/qtvcp/widgets/detach_tabs.py b/lib/python/qtvcp/widgets/detach_tabs.py index c252b38f181..4158d8a1a84 100644 --- a/lib/python/qtvcp/widgets/detach_tabs.py +++ b/lib/python/qtvcp/widgets/detach_tabs.py @@ -1,6 +1,6 @@ -from PyQt5.QtGui import * -from PyQt5.QtCore import * -from PyQt5.QtWidgets import * +from qtpy.QtGui import * +from qtpy.QtCore import * +from qtpy.QtWidgets import * class DetachTabWidget(QTabWidget): def __init__(self, parent=None): @@ -22,7 +22,7 @@ def __init__(self, parent=None): self._lastgeometry = None - @pyqtSlot(bool) + @Slot(bool) def invokeDetachTab(self, **args): x = self.btn.geometry().x() y = self.btn.geometry().y() @@ -39,7 +39,7 @@ def setMovable(self, movable): # # @param fromIndex the original index location of the tab # @param toIndex the new index location of the tab - @pyqtSlot(int, int) + @Slot(int, int) def moveTab(self, fromIndex, toIndex): widget = self.widget(fromIndex) icon = self.tabIcon(fromIndex) @@ -56,7 +56,7 @@ def moveTab(self, fromIndex, toIndex): # # @param index the index location of the tab to be detached # @param point the screen position for creating the new DetachedTab dialog - @pyqtSlot(int, QPoint) + @Slot(int, QPoint) def detachTab(self, index, point): # Get the tab content @@ -89,7 +89,7 @@ def detachTab(self, index, point): # @param contentWidget the content widget from the DetachedTab dialog # @param name the name of the detached tab # @param icon the window icon for the detached tab - @pyqtSlot(QWidget, type(''), QIcon, QRect) + @Slot(QWidget, type(''), QIcon, QRect) def attachTab(self, contentWidget, name, icon, geometry): self._lastgeometry = geometry @@ -132,7 +132,7 @@ def attachTab(self, contentWidget, name, icon, geometry): # can be re-attached by closing the dialog or by double clicking on its # window frame. class DetachedTab(QDialog): - onCloseSignal = pyqtSignal(QWidget,type(''), QIcon, QRect) + onCloseSignal = Signal(QWidget,type(''), QIcon, QRect) def __init__(self, contentWidget, parent=None): QDialog.__init__(self, parent) @@ -173,8 +173,8 @@ def closeEvent(self, event): ## # The TabBar class re-implements some of the functionality of the QTabBar widget class TabBar(QTabBar): - onDetachTabSignal = pyqtSignal(int, QPoint) - onMoveTabSignal = pyqtSignal(int, int) + onDetachTabSignal = Signal(int, QPoint) + onMoveTabSignal = Signal(int, int) def __init__(self, parent=None): QTabBar.__init__(self, parent) diff --git a/lib/python/qtvcp/widgets/dialogMixin.py b/lib/python/qtvcp/widgets/dialogMixin.py index 5ed3a4ce996..333ce08d536 100644 --- a/lib/python/qtvcp/widgets/dialogMixin.py +++ b/lib/python/qtvcp/widgets/dialogMixin.py @@ -1,4 +1,4 @@ -from PyQt5.QtWidgets import (QDesktopWidget, QMessageBox) +from qtpy.QtWidgets import (QDesktopWidget, QMessageBox) from qtvcp.widgets.widget_baseclass import _HalWidgetBase from qtvcp import logger diff --git a/lib/python/qtvcp/widgets/dialog_widget.py b/lib/python/qtvcp/widgets/dialog_widget.py index 5a43370ffab..138094edaae 100644 --- a/lib/python/qtvcp/widgets/dialog_widget.py +++ b/lib/python/qtvcp/widgets/dialog_widget.py @@ -18,13 +18,13 @@ import os import hal -from PyQt5.QtWidgets import (QMessageBox, QFileDialog, QDesktopWidget, +from qtpy.QtWidgets import (QMessageBox, QFileDialog, QDesktopWidget, QDialog, QDialogButtonBox, QVBoxLayout, QPushButton, QHBoxLayout, QHBoxLayout, QLineEdit, QPushButton, QDialogButtonBox, QTabWidget, QTextEdit,QLabel) -from PyQt5.QtGui import QColor -from PyQt5.QtCore import Qt, pyqtSlot, pyqtProperty, QEvent, QUrl -from PyQt5 import uic +from qtpy.QtGui import QColor +from qtpy.QtCore import Qt, Slot, Property, QEvent, QUrl +from qtpy import uic from qtvcp.widgets.widget_baseclass import _HalWidgetBase, hal from qtvcp.widgets.origin_offsetview import OriginOffsetView as OFFVIEW_WIDGET @@ -352,7 +352,7 @@ def _external_update(self, w, message): # ********************** # Designer properties # ********************** - @pyqtSlot(bool) + @Slot(bool) def setState(self, value): self._state = value if value: @@ -378,9 +378,9 @@ def setIdName(self, name): def resetIdName(self): self._request_name = 'MESSAGE' - overlay_color = pyqtProperty(QColor, getColor, setColor) - state = pyqtProperty(bool, getState, setState, resetState) - launch_id = pyqtProperty(str, getIdName, setIdName, resetIdName) + overlay_color = Property(QColor, getColor, setColor) + state = Property(bool, getState, setState, resetState) + launch_id = Property(str, getIdName, setIdName, resetIdName) ################################################################################ # Close Dialog @@ -583,7 +583,7 @@ def getFrameless(self): def resetFrameless(self): self._frameless = False - frameless = pyqtProperty(bool, getFrameless, setFrameless, resetFrameless) + frameless = Property(bool, getFrameless, setFrameless, resetFrameless) def setUseDesktopNotify(self, value): self._useDesktopNotify = value @@ -592,7 +592,7 @@ def getUseDesktopNotify(self): def resetUseDesktopNotify(self): self._useDesktopNotify = False - useDesktopNotify = pyqtProperty(bool, getUseDesktopNotify, setUseDesktopNotify, resetUseDesktopNotify) + useDesktopNotify = Property(bool, getUseDesktopNotify, setUseDesktopNotify, resetUseDesktopNotify) ################################################################################ # File Open Dialog @@ -745,7 +745,7 @@ def save_dialog(self, extensions = None, preselect = None, directory = None): # Designer properties #********************** - @pyqtSlot(bool) + @Slot(bool) def setState(self, value): self._state = value if value: @@ -764,8 +764,8 @@ def setColor(self, value): def resetState(self): self._color = QColor(0, 0, 0, 150) - state = pyqtProperty(bool, getState, setState, resetState) - overlay_color = pyqtProperty(QColor, getColor, setColor) + state = Property(bool, getState, setState, resetState) + overlay_color = Property(QColor, getColor, setColor) def getLoadIdName(self): return self._load_request_name @@ -781,8 +781,8 @@ def setSaveIdName(self, name): def resetSaveIdName(self): self._save_request_name = 'SAVE' - launch_load_id = pyqtProperty(str, getLoadIdName, setLoadIdName, resetLoadIdName) - launch_save_id = pyqtProperty(str, getSaveIdName, setSaveIdName, resetSaveIdName) + launch_load_id = Property(str, getLoadIdName, setLoadIdName, resetLoadIdName) + launch_save_id = Property(str, getSaveIdName, setSaveIdName, resetSaveIdName) ################################################################################ # origin Offset Dialog @@ -873,7 +873,7 @@ def __setitem__(self, item, value): # Designer properties # ********************** - @pyqtSlot(bool) + @Slot(bool) def setState(self, value): self._state = value if value: @@ -899,9 +899,9 @@ def setIdName(self, name): def resetIdName(self): self._request_name = 'ORIGINOFFSET' - launch_id = pyqtProperty(str, getIdName, setIdName, resetIdName) - state = pyqtProperty(bool, getState, setState, resetState) - overlay_color = pyqtProperty(QColor, getColor, setColor) + launch_id = Property(str, getIdName, setIdName, resetIdName) + state = Property(bool, getState, setState, resetState) + overlay_color = Property(QColor, getColor, setColor) ################################################################################ @@ -1004,7 +1004,7 @@ def __setitem__(self, item, value): # Designer properties # ********************** - @pyqtSlot(bool) + @Slot(bool) def setState(self, value): self._state = value if value: @@ -1030,9 +1030,9 @@ def setIdName(self, name): def resetIdName(self): self._request_name = 'TOOLOFFSET' - launch_id = pyqtProperty(str, getIdName, setIdName, resetIdName) - state = pyqtProperty(bool, getState, setState, resetState) - overlay_color = pyqtProperty(QColor, getColor, setColor) + launch_id = Property(str, getIdName, setIdName, resetIdName) + state = Property(bool, getState, setState, resetState) + overlay_color = Property(QColor, getColor, setColor) ################################################################################ @@ -1151,7 +1151,7 @@ def __getitem__(self, item): def __setitem__(self, item, value): return setattr(self, item, value) - @pyqtSlot(bool) + @Slot(bool) def setState(self, value): self._state = value if value: @@ -1177,9 +1177,9 @@ def setIdName(self, name): def resetIdName(self): self._request_name = 'TOOLCHOOSER' - launch_id = pyqtProperty(str, getIdName, setIdName, resetIdName) - state = pyqtProperty(bool, getState, setState, resetState) - overlay_color = pyqtProperty(QColor, getColor, setColor) + launch_id = Property(str, getIdName, setIdName, resetIdName) + state = Property(bool, getState, setState, resetState) + overlay_color = Property(QColor, getColor, setColor) ################################################################################ # CamView Dialog @@ -1250,7 +1250,7 @@ def load_dialog(self): # Designer properties # ********************** - @pyqtSlot(bool) + @Slot(bool) def setState(self, value): self._state = value if value: @@ -1276,9 +1276,9 @@ def setIdName(self, name): def resetIdName(self): self._request_name = 'CAMVIEW' - launch_id = pyqtProperty(str, getIdName, setIdName, resetIdName) - state = pyqtProperty(bool, getState, setState, resetState) - overlay_color = pyqtProperty(QColor, getColor, setColor) + launch_id = Property(str, getIdName, setIdName, resetIdName) + state = Property(bool, getState, setState, resetState) + overlay_color = Property(QColor, getColor, setColor) ################################################################################ @@ -1353,7 +1353,7 @@ def load_dialog(self): # Designer properties # ********************** - @pyqtSlot(bool) + @Slot(bool) def setState(self, value): self._state = value if value: @@ -1379,9 +1379,9 @@ def setIdName(self, name): def resetIdName(self): self._request_name = 'MACROTAB' - launch_id = pyqtProperty(str, getIdName, setIdName, resetIdName) - state = pyqtProperty(bool, getState, setState, resetState) - overlay_color = pyqtProperty(QColor, getColor, setColor) + launch_id = Property(str, getIdName, setIdName, resetIdName) + state = Property(bool, getState, setState, resetState) + overlay_color = Property(QColor, getColor, setColor) ################################################################################ # Versaprobe Dialog @@ -1435,7 +1435,7 @@ def load_dialog(self): # Designer properties # ********************** - @pyqtSlot(bool) + @Slot(bool) def setState(self, value): self._state = value if value: @@ -1461,9 +1461,9 @@ def setIdName(self, name): def resetIdName(self): self._request_name = 'VERSAPROBE' - launch_id = pyqtProperty(str, getIdName, setIdName, resetIdName) - state = pyqtProperty(bool, getState, setState, resetState) - overlay_color = pyqtProperty(QColor, getColor, setColor) + launch_id = Property(str, getIdName, setIdName, resetIdName) + state = Property(bool, getState, setState, resetState) + overlay_color = Property(QColor, getColor, setColor) ############################################ # Entry Dialog @@ -1604,9 +1604,9 @@ def reset_soft_keyboard(self): self.Num.keyboard_enable = True # designer will show these properties in this order: - launch_id = pyqtProperty(str, getIdName, setIdName, resetIdName) - overlay_color = pyqtProperty(QColor, getColor, setColor) - soft_keyboard_option = pyqtProperty(bool, get_soft_keyboard, set_soft_keyboard, reset_soft_keyboard) + launch_id = Property(str, getIdName, setIdName, resetIdName) + overlay_color = Property(QColor, getColor, setColor) + soft_keyboard_option = Property(bool, get_soft_keyboard, set_soft_keyboard, reset_soft_keyboard) ############################################ # Keyboard Dialog @@ -1717,9 +1717,9 @@ def reset_soft_keyboard(self): self.Num.keyboard_enable = True # designer will show these properties in this order: - launch_id = pyqtProperty(str, getIdName, setIdName, resetIdName) - overlay_color = pyqtProperty(QColor, getColor, setColor) - soft_keyboard_option = pyqtProperty(bool, get_soft_keyboard, set_soft_keyboard, reset_soft_keyboard) + launch_id = Property(str, getIdName, setIdName, resetIdName) + overlay_color = Property(QColor, getColor, setColor) + soft_keyboard_option = Property(bool, get_soft_keyboard, set_soft_keyboard, reset_soft_keyboard) ############################################ @@ -1899,8 +1899,8 @@ def setIdName(self, name): def resetIdName(self): self._request_name = 'CALCULATOR' - launch_id = pyqtProperty(str, getIdName, setIdName, resetIdName) - overlay_color = pyqtProperty(QColor, getColor, setColor) + launch_id = Property(str, getIdName, setIdName, resetIdName) + overlay_color = Property(QColor, getColor, setColor) ############################################ # machine Log Dialog @@ -2011,8 +2011,8 @@ def resetIdName(self): self._request_name = 'MACHINELOG' # designer will show these properties in this order: - launch_id = pyqtProperty(str, getIdName, setIdName, resetIdName) - overlay_color = pyqtProperty(QColor, getColor, setColor) + launch_id = Property(str, getIdName, setIdName, resetIdName) + overlay_color = Property(QColor, getColor, setColor) ############################################ # Run from line prestart Dialog @@ -2207,15 +2207,15 @@ def resetIdName(self): self._request_name = 'ABOUT' # designer will show these properties in this order: - launch_id = pyqtProperty(str, getIdName, setIdName, resetIdName) - overlay_color = pyqtProperty(QColor, getColor, setColor) + launch_id = Property(str, getIdName, setIdName, resetIdName) + overlay_color = Property(QColor, getColor, setColor) ################################ # for testing without editor: ################################ def main(): import sys - from PyQt5.QtWidgets import QApplication + from qtpy.QtWidgets import QApplication app = QApplication(sys.argv) #widget = AboutDialog() diff --git a/lib/python/qtvcp/widgets/dro_widget.py b/lib/python/qtvcp/widgets/dro_widget.py index 66aa2ab64db..c09335ae4b9 100644 --- a/lib/python/qtvcp/widgets/dro_widget.py +++ b/lib/python/qtvcp/widgets/dro_widget.py @@ -16,9 +16,9 @@ import linuxcnc -from PyQt5 import QtCore -from PyQt5.QtWidgets import QMenu, QAction -from PyQt5.QtGui import QIcon +from qtpy import QtCore +from qtpy.QtWidgets import QMenu, QAction +from qtpy.QtGui import QIcon from qtvcp.widgets.simple_widgets import ScaledLabel from qtvcp.widgets.widget_baseclass import _HalWidgetBase @@ -166,8 +166,8 @@ def motion_mode(self, w, mode): elif mode == linuxcnc.TRAJ_MODE_TELEOP: self._mode = True - @QtCore.pyqtSlot(int) - @QtCore.pyqtSlot(float) + @QtCore.Slot(int) + @QtCore.Slot(float) def update_user(self, data): self._user = data @@ -326,7 +326,7 @@ def goToG5x(self): ######################################################################### # This is how designer can interact with our widget properties. - # designer will show the pyqtProperty properties in the editor + # designer will show the Property properties in the editor # it will use the get set and reset calls to do those actions # # _toggle_properties makes it so we can only select one option @@ -350,7 +350,7 @@ def get_force_diameter(self): return self.force_diameter def reset_force_diameter(self): self.force_diameter = False - always_display_diameter = QtCore.pyqtProperty(bool, get_force_diameter, set_force_diameter, reset_force_diameter) + always_display_diameter = QtCore.Property(bool, get_force_diameter, set_force_diameter, reset_force_diameter) def set_force_radius(self, data): self.force_radius = data @@ -361,7 +361,7 @@ def get_force_radius(self): return self.force_radius def reset_force_radius(self): self.force_radius = False - always_display_radius = QtCore.pyqtProperty(bool, get_force_radius, set_force_radius, reset_force_radius) + always_display_radius = QtCore.Property(bool, get_force_radius, set_force_radius, reset_force_radius) def set_follow_m7m8_mode(self, data): self.follow_m7m8_mode = data @@ -371,7 +371,7 @@ def get_follow_m7m8_mode(self): return self.follow_m7m8_mode def reset_follow_m7m8_mode(self): self.follow_m7m8_mode = True - display_as_per_m7m8 = QtCore.pyqtProperty(bool, get_follow_m7m8_mode, set_follow_m7m8_mode, reset_follow_m7m8_mode) + display_as_per_m7m8 = QtCore.Property(bool, get_follow_m7m8_mode, set_follow_m7m8_mode, reset_follow_m7m8_mode) def set_follow_reference(self, data): self.allow_reference_change_requests = data @@ -379,7 +379,7 @@ def get_follow_reference(self): return self.allow_reference_change_requests def reset_follow_reference(self): self.allow_reference_change_requests = True - follow_reference_changes = QtCore.pyqtProperty(bool, get_follow_reference, set_follow_reference, reset_follow_reference) + follow_reference_changes = QtCore.Property(bool, get_follow_reference, set_follow_reference, reset_follow_reference) # JOINT Number TODO this is actually joint index of the 9 axes # rather then linuxcnc's idea of joint number @@ -393,7 +393,7 @@ def getjoint_number(self): return self.axis_index def resetjoint_number(self): self.axis_index = 0 - Qjoint_number = QtCore.pyqtProperty(int, getjoint_number, setjoint_number, resetjoint_number) + Qjoint_number = QtCore.Property(int, getjoint_number, setjoint_number, resetjoint_number) # user system Number def setreference_type(self, data): @@ -402,7 +402,7 @@ def getreference_type(self): return self.reference_type def resetreference_type(self): self.reference_type = 0 - Qreference_type = QtCore.pyqtProperty(int, getreference_type, setreference_type, resetreference_type) + Qreference_type = QtCore.Property(int, getreference_type, setreference_type, resetreference_type) def setmetrictemplate(self, data): self.metric_text_template = data @@ -411,7 +411,7 @@ def getmetrictemplate(self): return self.metric_text_template def resetmetrictemplate(self): self.metric_text_template = '%10.3f' - metric_template = QtCore.pyqtProperty(str, getmetrictemplate, setmetrictemplate, resetmetrictemplate) + metric_template = QtCore.Property(str, getmetrictemplate, setmetrictemplate, resetmetrictemplate) def setimperialtexttemplate(self, data): self.imperial_text_template = data @@ -420,7 +420,7 @@ def getimperialtexttemplate(self): return self.imperial_text_template def resetimperialtexttemplate(self): self.imperial_text_template = '%9.4f' - imperial_template = QtCore.pyqtProperty(str, getimperialtexttemplate, setimperialtexttemplate, resetimperialtexttemplate) + imperial_template = QtCore.Property(str, getimperialtexttemplate, setimperialtexttemplate, resetimperialtexttemplate) def setangulartexttemplate(self, data): self.angular_text_template = data @@ -429,14 +429,14 @@ def getangulartexttemplate(self): return self.angular_text_template def resetangulartexttemplate(self): self.angular_text_template = '%9.2f' - angular_template = QtCore.pyqtProperty(str, getangulartexttemplate, setangulartexttemplate, resetangulartexttemplate) + angular_template = QtCore.Property(str, getangulartexttemplate, setangulartexttemplate, resetangulartexttemplate) def setisHomed(self, data): self._isHomed = data def getisHomed(self): return self._isHomed - isHomed = QtCore.pyqtProperty(bool, getisHomed, setisHomed) + isHomed = QtCore.Property(bool, getisHomed, setisHomed) #################### ## menu properties @@ -448,7 +448,7 @@ def get_dialog_code(self): return self.dialog_code def reset_dialog_code(self): self.dialog_code = 'CALCULATOR' - dialogName = QtCore.pyqtProperty(str, get_dialog_code, set_dialog_code, reset_dialog_code) + dialogName = QtCore.Property(str, get_dialog_code, set_dialog_code, reset_dialog_code) def set_showSet(self, data): self._showSet = data @@ -456,7 +456,7 @@ def get_showSet(self): return self._showSet def reset_showSet(self): self._showSet = False - showSetOrigin = QtCore.pyqtProperty(bool, get_showSet, set_showSet, reset_showSet) + showSetOrigin = QtCore.Property(bool, get_showSet, set_showSet, reset_showSet) def set_showZero(self, data): self._showZero = data @@ -464,7 +464,7 @@ def get_showZero(self): return self._showZero def reset_showZero(self): self._showZero = False - showZeroOrigin = QtCore.pyqtProperty(bool, get_showZero, set_showZero, reset_showZero) + showZeroOrigin = QtCore.Property(bool, get_showZero, set_showZero, reset_showZero) def set_showGoto(self, data): self._showGoto = data @@ -472,7 +472,7 @@ def get_showGoto(self): return self._showGoto def reset_showGoto(self): self._showGoto = False - showGotoOrigin = QtCore.pyqtProperty(bool, get_showGoto, set_showGoto, reset_showGoto) + showGotoOrigin = QtCore.Property(bool, get_showGoto, set_showGoto, reset_showGoto) def set_showLast(self, data): self._showLast = data @@ -480,7 +480,7 @@ def get_showLast(self): return self._showLast def reset_showLast(self): self._showLast = False - showLast = QtCore.pyqtProperty(bool, get_showLast, set_showLast, reset_showLast) + showLast = QtCore.Property(bool, get_showLast, set_showLast, reset_showLast) def set_showDivide(self, data): self._showDivide = data @@ -488,7 +488,7 @@ def get_showDivide(self): return self._showDivide def reset_showDivide(self): self._showDivide = False - showDivide = QtCore.pyqtProperty(bool, get_showDivide, set_showDivide, reset_showDivide) + showDivide = QtCore.Property(bool, get_showDivide, set_showDivide, reset_showDivide) ############################## # required class boiler code # @@ -502,7 +502,7 @@ def __setitem__(self, item, value): # for testing without editor: def main(): import sys - from PyQt5.QtWidgets import QApplication + from qtpy.QtWidgets import QApplication app = QApplication(sys.argv) widget = DROLabel() diff --git a/lib/python/qtvcp/widgets/entry_widget.py b/lib/python/qtvcp/widgets/entry_widget.py index 692d0ffeabd..494a9301086 100644 --- a/lib/python/qtvcp/widgets/entry_widget.py +++ b/lib/python/qtvcp/widgets/entry_widget.py @@ -18,7 +18,7 @@ # This widget pops up an onscreen keyboard for entries # Used in the Macro and MDI line widget -from PyQt5 import QtWidgets, QtCore, QtGui +from qtpy import QtWidgets, QtCore, QtGui #from decimal import Decimal # applicationle widgets @@ -267,7 +267,7 @@ def callDialog(self, widget, ktype): ## testing ## if __name__ == '__main__': import sys - from PyQt5.QtWidgets import QWidget + from qtpy.QtWidgets import QWidget app = QtWidgets.QApplication([]) w = QWidget() w.setGeometry(100, 100, 200, 100) diff --git a/lib/python/qtvcp/widgets/file_manager.py b/lib/python/qtvcp/widgets/file_manager.py index 1064592b7c6..7ee62bccb97 100644 --- a/lib/python/qtvcp/widgets/file_manager.py +++ b/lib/python/qtvcp/widgets/file_manager.py @@ -5,13 +5,13 @@ import shutil from collections import OrderedDict -from PyQt5.QtCore import QCoreApplication -from PyQt5.QtWidgets import (QApplication, QFileSystemModel, QWidget, QVBoxLayout, QHBoxLayout, +from qtpy.QtCore import QCoreApplication +from qtpy.QtWidgets import (QApplication, QFileSystemModel, QWidget, QVBoxLayout, QHBoxLayout, QListView, QComboBox, QPushButton, QToolButton, QSizePolicy, QMenu, QAction, QLineEdit, QCheckBox, QTableView, QHeaderView, QMessageBox) -from PyQt5.QtGui import QIcon, QDragEnterEvent, QDropEvent -from PyQt5.QtCore import (QModelIndex, QDir, Qt, pyqtSlot, pyqtSignal, pyqtProperty, QFileInfo, QMimeData, +from qtpy.QtGui import QIcon, QDragEnterEvent, QDropEvent +from qtpy.QtCore import (QModelIndex, QDir, Qt, Slot, Signal, Property, QFileInfo, QMimeData, QItemSelectionModel, QItemSelection, QSortFilterProxyModel) from qtvcp.widgets.widget_baseclass import _HalWidgetBase @@ -34,7 +34,7 @@ _translate = QCoreApplication.translate class SharedViewMixin: - itemDropped = pyqtSignal(list) + itemDropped = Signal(list) def dragEnterEvent(self, event: QDragEnterEvent): if event.mimeData().hasUrls(): event.acceptProposedAction() @@ -599,8 +599,8 @@ def copy(self, s, d): STATUS.emit('error', STATUS.OPERATOR_ERROR, f"Copy file error: {e}") return False - @pyqtSlot(float) - @pyqtSlot(int) + @Slot(float) + @Slot(int) def scroll(self, data): if data > self._last: self.up() @@ -722,7 +722,7 @@ def getDoubleClickSelection(self): def resetDoubleClickSelection(self, state): self._doubleClick = False self.connectSelection() - doubleClickSelection = pyqtProperty(bool, getDoubleClickSelection, setDoubleClickSelection, resetDoubleClickSelection) + doubleClickSelection = Property(bool, getDoubleClickSelection, setDoubleClickSelection, resetDoubleClickSelection) # list/table view selection def setShowListView(self, state): @@ -733,7 +733,7 @@ def getShowListView(self): def resetShowListView(self, state): self._showListView = False self.showList(False) - showListView = pyqtProperty(bool, getShowListView, setShowListView, resetShowListView) + showListView = Property(bool, getShowListView, setShowListView, resetShowListView) if __name__ == "__main__": import sys diff --git a/lib/python/qtvcp/widgets/gcode_editor.py b/lib/python/qtvcp/widgets/gcode_editor.py index 1b3275e7b43..ff1def1b2df 100644 --- a/lib/python/qtvcp/widgets/gcode_editor.py +++ b/lib/python/qtvcp/widgets/gcode_editor.py @@ -31,9 +31,9 @@ import os import re -from PyQt5.QtCore import pyqtProperty, pyqtSignal, QSize -from PyQt5.QtGui import QFont, QFontMetrics, QColor, QIcon -from PyQt5.QtWidgets import QWidget, QAction,\ +from qtpy.QtCore import Property, Signal, QSize +from qtpy.QtGui import QFont, QFontMetrics, QColor, QIcon +from qtpy.QtWidgets import QWidget, QAction,\ QVBoxLayout, QToolBar, QLineEdit, QHBoxLayout, QMessageBox, \ QFrame, QLabel, QStyle @@ -55,7 +55,7 @@ # load this after Logging set up so we get a nice dialog. try: - from PyQt5.Qsci import QsciScintilla, QsciLexerCustom, QsciLexerPython + from qtpy.Qsci import QsciScintilla, QsciLexerCustom, QsciLexerPython except ImportError as e: LOG.critical("Can't import QsciScintilla - is package python3-pyqt5.qsci installed?", exc_info=e) sys.exit(1) @@ -373,7 +373,7 @@ def setColor0(self, value): self.setColor(value) if self.lexer is not None: self.lexer.setColor(value, 0) - styleColor0 = pyqtProperty(QColor, getColor0, setColor0) + styleColor0 = Property(QColor, getColor0, setColor0) # Lexer Colors def getColor1(self): @@ -382,7 +382,7 @@ def setColor1(self, value): self._styleColor[1] = value if self.lexer is not None: self.lexer.setColor(value, 1) - styleColor1 = pyqtProperty(QColor, getColor1, setColor1) + styleColor1 = Property(QColor, getColor1, setColor1) def getColor2(self): return self._styleColor.get(2, self._styleColor[0]) @@ -390,7 +390,7 @@ def setColor2(self, value): self._styleColor[2] = value if self.lexer is not None: self.lexer.setColor(value, 2) - styleColor2 = pyqtProperty(QColor, getColor2, setColor2) + styleColor2 = Property(QColor, getColor2, setColor2) def getColor3(self): return self._styleColor.get(3, self._styleColor[0]) @@ -398,7 +398,7 @@ def setColor3(self, value): self._styleColor[3] = value if self.lexer is not None: self.lexer.setColor(value, 3) - styleColor3 = pyqtProperty(QColor, getColor3, setColor3) + styleColor3 = Property(QColor, getColor3, setColor3) def getColor4(self): return self._styleColor.get(4, self._styleColor[0]) @@ -406,7 +406,7 @@ def setColor4(self, value): self._styleColor[4] = value if self.lexer is not None: self.lexer.setColor(value, 4) - styleColor4 = pyqtProperty(QColor, getColor4, setColor4) + styleColor4 = Property(QColor, getColor4, setColor4) def getColor5(self): return self._styleColor.get(5, self._styleColor[0]) @@ -414,7 +414,7 @@ def setColor5(self, value): self._styleColor[5] = value if self.lexer is not None: self.lexer.setColor(value, 5) - styleColor5 = pyqtProperty(QColor, getColor5, setColor5) + styleColor5 = Property(QColor, getColor5, setColor5) def getColor6(self): return self._styleColor.get(6, self._styleColor[0]) @@ -422,7 +422,7 @@ def setColor6(self, value): self._styleColor[6] = value if self.lexer is not None: self.lexer.setColor(value, 6) - styleColor6 = pyqtProperty(QColor, getColor6, setColor6) + styleColor6 = Property(QColor, getColor6, setColor6) def getColor7(self): return self._styleColor.get(7, self._styleColor[0]) @@ -430,7 +430,7 @@ def setColor7(self, value): self._styleColor[7] = value if self.lexer is not None: self.lexer.setColor(value, 7) - styleColor7 = pyqtProperty(QColor, getColor7, setColor7) + styleColor7 = Property(QColor, getColor7, setColor7) # Margins Text Color def getColorMarginsForeground(self): @@ -438,7 +438,7 @@ def getColorMarginsForeground(self): def setColorMarginsForeground(self, value): super(EditorBase, self).setMarginsForegroundColor(value) self._styleColor["Margins"] = value - styleColorMarginText = pyqtProperty(QColor, getColorMarginsForeground, setColorMarginsForeground) + styleColorMarginText = Property(QColor, getColorMarginsForeground, setColorMarginsForeground) # Cursor Color def getColorCursor(self): @@ -446,7 +446,7 @@ def getColorCursor(self): def setColorCursor(self, color): self._styleCursorColor = color super(EditorBase, self).setCaretForegroundColor(color) - styleColorCursor = pyqtProperty(QColor, getColorCursor, setColorCursor) + styleColorCursor = Property(QColor, getColorCursor, setColorCursor) # Backgrounds def getColorBackground(self): @@ -459,7 +459,7 @@ def setColorBackground(self, color): self.lexer.setDefaultPaper(color) for i in range(0, self.lexer_num_styles): self.lexer.setPaper(color, i) - styleColorBackground = pyqtProperty(QColor, getColorBackground, setColorBackground) + styleColorBackground = Property(QColor, getColorBackground, setColorBackground) # Margins Background def setColorMarginsBackground(self, color): @@ -467,7 +467,7 @@ def setColorMarginsBackground(self, color): self._styleMarginsBackgroundColor = color def getColorMarginsBackground(self): return self._styleMarginsBackgroundColor - styleColorMarginBackground = pyqtProperty(QColor, getColorMarginsBackground, setColorMarginsBackground) + styleColorMarginBackground = Property(QColor, getColorMarginsBackground, setColorMarginsBackground) # Selection Highlight Background & Foreground def getColorSelectionBackground(self): @@ -475,14 +475,14 @@ def getColorSelectionBackground(self): def setColorSelectionBackground(self, value): self._styleSelectionBackgroundColor = value self.setSelectionBackgroundColor(value) - styleColorSelectionBackground = pyqtProperty(QColor, getColorSelectionBackground, setColorSelectionBackground) + styleColorSelectionBackground = Property(QColor, getColorSelectionBackground, setColorSelectionBackground) def getColorSelectionForeground(self): return self._styleSelectionForegroundColor def setColorSelectionForeground(self, value): self._styleSelectionForegroundColor = value self.setSelectionForegroundColor(value) - styleColorSelectionText = pyqtProperty(QColor, getColorSelectionForeground, setColorSelectionForeground) + styleColorSelectionText = Property(QColor, getColorSelectionForeground, setColorSelectionForeground) # Current Line Marker Background def getColorMarkerBackground(self): @@ -490,7 +490,7 @@ def getColorMarkerBackground(self): def setColorMarkerBackground(self, value): self._styleMarkerBackgroundColor = value self.setMarkerBackgroundColor(value, self.CURRENT_MARKER_NUM) - styleColorMarkerBackground = pyqtProperty(QColor, getColorMarkerBackground, setColorMarkerBackground) + styleColorMarkerBackground = Property(QColor, getColorMarkerBackground, setColorMarkerBackground) # Fonts def setDefaultFont(self, value): @@ -504,7 +504,7 @@ def setDefaultFont(self, value): self.lexer.setFont(self._styleFont.get(i, self._styleFont[0]), i) def getDefaultFont(self): return self._styleFont[0] - styleFont = pyqtProperty(QFont, getDefaultFont, setDefaultFont) + styleFont = Property(QFont, getDefaultFont, setDefaultFont) def getFont0(self): return self._styleFont[0] @@ -513,7 +513,7 @@ def setFont0(self, value): self.setFont(value) if self.lexer is not None: self.lexer.setFont(value, 0) - styleFont0 = pyqtProperty(QFont, getFont0, setFont0) + styleFont0 = Property(QFont, getFont0, setFont0) def getFont1(self): return self._styleFont.get(1, self._styleFont[0]) @@ -521,7 +521,7 @@ def setFont1(self, value): self._styleFont[1] = value if self.lexer is not None: self.lexer.setFont(value, 1) - styleFont1 = pyqtProperty(QFont, getFont1, setFont1) + styleFont1 = Property(QFont, getFont1, setFont1) def getFont2(self): return self._styleFont.get(2, self._styleFont[0]) @@ -529,7 +529,7 @@ def setFont2(self, value): self._styleFont[2] = value if self.lexer is not None: self.lexer.setFont(value, 2) - styleFont2 = pyqtProperty(QFont, getFont2, setFont2) + styleFont2 = Property(QFont, getFont2, setFont2) def getFont3(self): return self._styleFont.get(3, self._styleFont[0]) @@ -537,7 +537,7 @@ def setFont3(self, value): self._styleFont[3] = value if self.lexer is not None: self.lexer.setFont(value, 3) - styleFont3 = pyqtProperty(QFont, getFont3, setFont3) + styleFont3 = Property(QFont, getFont3, setFont3) def getFont4(self): return self._styleFont.get(4, self._styleFont[0]) @@ -545,7 +545,7 @@ def setFont4(self, value): self._styleFont[4] = value if self.lexer is not None: self.lexer.setFont(value, 4) - styleFont4 = pyqtProperty(QFont, getFont4, setFont4) + styleFont4 = Property(QFont, getFont4, setFont4) def getFont5(self): return self._styleFont.get(5, self._styleFont[0]) @@ -553,7 +553,7 @@ def setFont5(self, value): self._styleFont[5] = value if self.lexer is not None: self.lexer.setFont(value, 5) - styleFont5 = pyqtProperty(QFont, getFont5, setFont5) + styleFont5 = Property(QFont, getFont5, setFont5) def getFont6(self): return self._styleFont.get(6, self._styleFont[0]) @@ -561,7 +561,7 @@ def setFont6(self, value): self._styleFont[6] = value if self.lexer is not None: self.lexer.setFont(value, 6) - styleFont6 = pyqtProperty(QFont, getFont6, setFont6) + styleFont6 = Property(QFont, getFont6, setFont6) def getFont7(self): return self._styleFont.get(7, self._styleFont[0]) @@ -569,14 +569,14 @@ def setFont7(self, value): self._styleFont[7] = value if self.lexer is not None: self.lexer.setFont(value, 7) - styleFont7 = pyqtProperty(QFont, getFont7, setFont7) + styleFont7 = Property(QFont, getFont7, setFont7) def getFontMargins(self): return self._styleFont.get("Margins", self._styleFont[0]) def setFontMargins(self, value): self._styleFont["Margins"] = value self.setMarginsFont(value) - styleFontMargin = pyqtProperty(QFont, getFontMargins, setFontMargins) + styleFontMargin = Property(QFont, getFontMargins, setFontMargins) # Syntax Highlighting Bool def getSyntaxHighlightEnabled(self): @@ -588,7 +588,7 @@ def setSyntaxHighlightEnabled(self, value): self.set_lexer(None) else: self.set_lexer("g-code") - styleSyntaxHighlightEnabled = pyqtProperty(bool, getSyntaxHighlightEnabled, setSyntaxHighlightEnabled) + styleSyntaxHighlightEnabled = Property(bool, getSyntaxHighlightEnabled, setSyntaxHighlightEnabled) ########################################################## @@ -779,7 +779,7 @@ def get_auto_show_mdi(self): return self.auto_show_mdi def reset_auto_show_mdi(self): self.auto_show_mdi = True - auto_show_mdi_status = pyqtProperty(bool, get_auto_show_mdi, set_auto_show_mdi, reset_auto_show_mdi) + auto_show_mdi_status = Property(bool, get_auto_show_mdi, set_auto_show_mdi, reset_auto_show_mdi) # designer recognized getter/setters # auto_show_manual status @@ -789,14 +789,14 @@ def get_auto_show_manual(self): return self.auto_show_manual def reset_auto_show_manual(self): self.auto_show_manual = True - auto_show_manual_status = pyqtProperty(bool, get_auto_show_manual, set_auto_show_manual, reset_auto_show_manual) + auto_show_manual_status = Property(bool, get_auto_show_manual, set_auto_show_manual, reset_auto_show_manual) ############################################# # For Editing Gcode ############################################# class GcodeEditor(QWidget, _HalWidgetBase): - percentDone = pyqtSignal(int) + percentDone = Signal(int) def __init__(self, parent=None): super(GcodeEditor, self).__init__(parent) @@ -1143,7 +1143,7 @@ def get_auto_show_mdi(self): return self.editor.auto_show_mdi def reset_auto_show_mdi(self): self.editor.auto_show_mdi = True - auto_show_mdi_status = pyqtProperty(bool, get_auto_show_mdi, set_auto_show_mdi, reset_auto_show_mdi) + auto_show_mdi_status = Property(bool, get_auto_show_mdi, set_auto_show_mdi, reset_auto_show_mdi) # designer recognized getter/setters # auto_show_manual status @@ -1153,13 +1153,13 @@ def get_auto_show_manual(self): return self.editor.auto_show_manual def reset_auto_show_manual(self): self.editor.auto_show_manual = True - auto_show_manual_status = pyqtProperty(bool, get_auto_show_manual, set_auto_show_manual, reset_auto_show_manual) + auto_show_manual_status = Property(bool, get_auto_show_manual, set_auto_show_manual, reset_auto_show_manual) # for direct testing if __name__ == "__main__": - from PyQt5.QtWidgets import * - from PyQt5.QtCore import * - from PyQt5.QtGui import * + from qtpy.QtWidgets import * + from qtpy.QtCore import * + from qtpy.QtGui import * sample_text = r"""( ----- Simple G-Code -----) G17 G20 G40 G49 G54 G80 G90 G94 diff --git a/lib/python/qtvcp/widgets/gcode_graphics.py b/lib/python/qtvcp/widgets/gcode_graphics.py index 2b1e1575a69..c1caf69e2d4 100644 --- a/lib/python/qtvcp/widgets/gcode_graphics.py +++ b/lib/python/qtvcp/widgets/gcode_graphics.py @@ -24,8 +24,8 @@ import os import gcode import linuxcnc -from PyQt5.QtCore import pyqtProperty, QTimer, Qt -from PyQt5.QtGui import QColor +from qtpy.QtCore import Property, QTimer, Qt +from qtpy.QtGui import QColor from qt5_graphics import Lcnc_3dGraphics from qtvcp.widgets.widget_baseclass import _HalWidgetBase @@ -396,14 +396,14 @@ def getview(self): return self.current_view def resetview(self): self.set_view('p') - _view = pyqtProperty(str, getview, setview, resetview) + _view = Property(str, getview, setview, resetview) # DRO def setdro(self, state): self.setEnableDRO(state) def getdro(self): return self.getEnableDRO() - _dro = pyqtProperty(bool, getdro, setdro) + _dro = Property(bool, getdro, setdro) # DTG def setdtg(self, state): @@ -411,7 +411,7 @@ def setdtg(self, state): self.update() def getdtg(self): return self.show_dtg - _dtg = pyqtProperty(bool, getdtg, setdtg) + _dtg = Property(bool, getdtg, setdtg) # METRIC def setmetric(self, state): @@ -419,7 +419,7 @@ def setmetric(self, state): self.update() def getmetric(self): return self.metric_units - _metric = pyqtProperty(bool, getmetric, setmetric) + _metric = Property(bool, getmetric, setmetric) # overlay def setoverlay(self, overlay): @@ -429,7 +429,7 @@ def getoverlay(self): return self.show_overlay def resetoverlay(self): self.show_overlay(False) - _overlay = pyqtProperty(bool, getoverlay, setoverlay, resetoverlay) + _overlay = Property(bool, getoverlay, setoverlay, resetoverlay) # show Offsets def setShowOffsets(self, state): @@ -437,7 +437,7 @@ def setShowOffsets(self, state): self.update() def getShowOffsets(self): return self.show_offsets - _offsets = pyqtProperty(bool, getShowOffsets, setShowOffsets) + _offsets = Property(bool, getShowOffsets, setShowOffsets) # show small origin def setShowSmallOrigin(self, state): @@ -445,7 +445,7 @@ def setShowSmallOrigin(self, state): self.update() def getShowSmallOrigin(self): return self.show_small_origin - _small_origin = pyqtProperty(bool, getShowSmallOrigin, setShowSmallOrigin) + _small_origin = Property(bool, getShowSmallOrigin, setShowSmallOrigin) def getGridColor(self): return self._gridColor @@ -455,7 +455,7 @@ def setGridColor(self, value): self.update() def resetGridColor(self): self._gridColor = QColor(200, 138, 138) - grid_color = pyqtProperty(QColor, getGridColor, setGridColor, resetGridColor) + grid_color = Property(QColor, getGridColor, setGridColor, resetGridColor) def getOverlayColor(self): return self._overlayColor @@ -465,7 +465,7 @@ def setOverlayColor(self, value): self.update() def resetOverlayColor(self): self._overlayColor = QColor(0, 0, 191, 150) - overlay_color = pyqtProperty(QColor, getOverlayColor, setOverlayColor, resetOverlayColor) + overlay_color = Property(QColor, getOverlayColor, setOverlayColor, resetOverlayColor) def getOverlayAlpha(self): return self._overlayAlpha @@ -475,7 +475,7 @@ def setOverlayAlpha(self, value): self.update() def resetOverlayAlpha(self): self._overlayAlpha = 0.75 - overlay_alpha = pyqtProperty(float, getOverlayAlpha, setOverlayAlpha, resetOverlayAlpha) + overlay_alpha = Property(float, getOverlayAlpha, setOverlayAlpha, resetOverlayAlpha) def getBackgroundColor(self): return self._backgroundColor @@ -492,7 +492,7 @@ def resetBackgroundColor(self): self.gradient_color1 = (value.redF(), value.greenF(), value.blueF()) self.colors['back'] = (value.redF(), value.greenF(), value.blueF()) self.update() - background_color = pyqtProperty(QColor, getBackgroundColor, setBackgroundColor, resetBackgroundColor) + background_color = Property(QColor, getBackgroundColor, setBackgroundColor, resetBackgroundColor) # use gradient background def setGradientBackground(self, state): @@ -500,7 +500,7 @@ def setGradientBackground(self, state): self.update() def getGradientBackground(self): return self.use_gradient_background - _use_gradient_background = pyqtProperty(bool, getGradientBackground, setGradientBackground) + _use_gradient_background = Property(bool, getGradientBackground, setGradientBackground) def getJogColor(self): return self._jogColor @@ -514,7 +514,7 @@ def setJogColor(self, value): def resetJogColor(self): self._jogColor = QColor(0, 0, 0, 0) - jog_color = pyqtProperty(QColor, getJogColor, setJogColor, resetJogColor) + jog_color = Property(QColor, getJogColor, setJogColor, resetJogColor) def getFeedColor(self): return self._feedColor @@ -529,7 +529,7 @@ def setFeedColor(self, value): def resetFeedColor(self): self._feedColor = QColor(0, 0, 0, 0) - Feed_color = pyqtProperty(QColor, getFeedColor, setFeedColor, resetFeedColor) + Feed_color = Property(QColor, getFeedColor, setFeedColor, resetFeedColor) def getRapidColor(self): return self._rapidColor @@ -543,7 +543,7 @@ def setRapidColor(self, value): def resetRapidColor(self): self._rapidColor = QColor(0, 0, 0, 0) - Rapid_color = pyqtProperty(QColor, getRapidColor, setRapidColor, resetRapidColor) + Rapid_color = Property(QColor, getRapidColor, setRapidColor, resetRapidColor) # Inhibit external controls def setInhibitControls(self, state): @@ -554,7 +554,7 @@ def getInhibitControls(self): def resetInhibitControls(self): self._disable_STATUS_signals = False self.updateSignals(False) - InhibitControls = pyqtProperty(bool, getInhibitControls, setInhibitControls,resetInhibitControls) + InhibitControls = Property(bool, getInhibitControls, setInhibitControls,resetInhibitControls) # set Mouse button controls def setMouseButtonMode(self, value): @@ -565,7 +565,7 @@ def getMouseButtonMode(self): def resetMouseButtonMode(self): self._mouseMode = 0 self.updateMouseMode(0) - MouseButtonMode = pyqtProperty(int, getMouseButtonMode, setMouseButtonMode,resetMouseButtonMode) + MouseButtonMode = Property(int, getMouseButtonMode, setMouseButtonMode,resetMouseButtonMode) # set mouse wheel zoom inversion def setMouseWheelInvertZoom(self, state): @@ -574,7 +574,7 @@ def getMouseWheelInvertZoom(self): return self._invertWheelZoom def resetMouseWheelInvertZoom(self): self._invertWheelZoom = False - MouseWheelInvertZoom = pyqtProperty(bool, getMouseWheelInvertZoom, setMouseWheelInvertZoom, resetMouseWheelInvertZoom) + MouseWheelInvertZoom = Property(bool, getMouseWheelInvertZoom, setMouseWheelInvertZoom, resetMouseWheelInvertZoom) # For testing purposes, include code to allow a widget to be created and shown # if this file is run. @@ -582,7 +582,7 @@ def resetMouseWheelInvertZoom(self): if __name__ == "__main__": import sys - from PyQt5.QtWidgets import QApplication + from qtpy.QtWidgets import QApplication app = QApplication(sys.argv) widget = GCodeGraphics() diff --git a/lib/python/qtvcp/widgets/geditor.py b/lib/python/qtvcp/widgets/geditor.py index ae2bcbee11c..56fd1658ac7 100644 --- a/lib/python/qtvcp/widgets/geditor.py +++ b/lib/python/qtvcp/widgets/geditor.py @@ -29,9 +29,9 @@ import sys -from PyQt5.QtCore import pyqtProperty, pyqtSignal, QSize, QEvent, Qt, QByteArray, QVariant -from PyQt5.QtGui import QIcon -from PyQt5.QtWidgets import QMainWindow, QAction,\ +from qtpy.QtCore import Property, Signal, QSize, QEvent, Qt, QByteArray, QVariant +from qtpy.QtGui import QIcon +from qtpy.QtWidgets import QMainWindow, QAction,\ QToolBar, QLineEdit, QHBoxLayout, QMessageBox, \ QFrame, QLabel @@ -55,7 +55,7 @@ ############################################# class GEditor(QMainWindow, _HalWidgetBase): - percentDone = pyqtSignal(int) + percentDone = Signal(int) def __init__(self, parent=None, designer=False): if not designer: @@ -481,7 +481,7 @@ def get_auto_show_mdi(self): return self.editor.auto_show_mdi def reset_auto_show_mdi(self): self.editor.auto_show_mdi = True - auto_show_mdi_status = pyqtProperty(bool, get_auto_show_mdi, set_auto_show_mdi, reset_auto_show_mdi) + auto_show_mdi_status = Property(bool, get_auto_show_mdi, set_auto_show_mdi, reset_auto_show_mdi) # designer recognized getter/setters # auto_show_manual status @@ -491,7 +491,7 @@ def get_auto_show_manual(self): return self.editor.auto_show_manual def reset_auto_show_manual(self): self.editor.auto_show_manual = True - auto_show_manual_status = pyqtProperty(bool, get_auto_show_manual, set_auto_show_manual, reset_auto_show_manual) + auto_show_manual_status = Property(bool, get_auto_show_manual, set_auto_show_manual, reset_auto_show_manual) # designer recognized getter/setters # show_editor status @@ -515,14 +515,14 @@ def reset_show_editor(self): self.toolBarLexer.show() self.toolBarEntry.show() self.toolBarEdit.show() - show_editor = pyqtProperty(bool, get_show_editor, set_show_editor, reset_show_editor) + show_editor = Property(bool, get_show_editor, set_show_editor, reset_show_editor) # for direct testing if __name__ == "__main__": - from PyQt5.QtWidgets import * - from PyQt5.QtCore import * - from PyQt5.QtGui import * + from qtpy.QtWidgets import * + from qtpy.QtCore import * + from qtpy.QtGui import * app = QApplication(sys.argv) w = GcodeEditor() diff --git a/lib/python/qtvcp/widgets/general_hal_input.py b/lib/python/qtvcp/widgets/general_hal_input.py index 65b22ca7f11..2da821acc0d 100644 --- a/lib/python/qtvcp/widgets/general_hal_input.py +++ b/lib/python/qtvcp/widgets/general_hal_input.py @@ -14,11 +14,11 @@ # GNU General Public License for more details. ############################################################################### -from PyQt5.QtWidgets import QWidget +from qtpy.QtWidgets import QWidget import hal from qtvcp.widgets.widget_baseclass import _HalWidgetBase -from PyQt5.QtCore import pyqtSignal, pyqtProperty +from qtpy.QtCore import Signal, Property from qtvcp import logger # Instantiate the libraries with global reference @@ -31,7 +31,7 @@ ################################################################ class GeneralHALInput(QWidget, _HalWidgetBase): - hal_pin_changed = pyqtSignal([int], [float], [bool]) + hal_pin_changed = Signal([int], [float], [bool]) def __init__(self, parent=None): super(GeneralHALInput, self).__init__(parent) self.istate = False @@ -64,7 +64,7 @@ def pin_update(self, *a): ######################################################################### # This is how designer can interact with our widget properties. - # designer will show the pyqtProperty properties in the editor + # designer will show the Property properties in the editor # it will use the get set and reset calls to do those actions ######################################################################## @@ -110,10 +110,10 @@ def reset_float_pin_type(self): self._float_pin_type = '' # designer will show these properties in this order: - pin_name = pyqtProperty(str, get_pin_name, set_pin_name, reset_pin_name) - bit_pin_type = pyqtProperty(bool, get_bit_pin_type, set_bit_pin_type, reset_bit_pin_type) - s32_pin_type = pyqtProperty(bool, get_s32_pin_type, set_s32_pin_type, reset_s32_pin_type) - float_pin_type = pyqtProperty(bool, get_float_pin_type, set_float_pin_type, reset_float_pin_type) + pin_name = Property(str, get_pin_name, set_pin_name, reset_pin_name) + bit_pin_type = Property(bool, get_bit_pin_type, set_bit_pin_type, reset_bit_pin_type) + s32_pin_type = Property(bool, get_s32_pin_type, set_s32_pin_type, reset_s32_pin_type) + float_pin_type = Property(bool, get_float_pin_type, set_float_pin_type, reset_float_pin_type) ############################## # required class boiler code # diff --git a/lib/python/qtvcp/widgets/general_hal_output.py b/lib/python/qtvcp/widgets/general_hal_output.py index acdc8faba4e..4133cd6979e 100644 --- a/lib/python/qtvcp/widgets/general_hal_output.py +++ b/lib/python/qtvcp/widgets/general_hal_output.py @@ -14,11 +14,11 @@ # GNU General Public License for more details. ############################################################################### -from PyQt5.QtWidgets import QWidget +from qtpy.QtWidgets import QWidget import hal from qtvcp.widgets.widget_baseclass import _HalWidgetBase -from PyQt5.QtCore import pyqtSlot, pyqtProperty +from qtpy.QtCore import Slot, Property from qtvcp import logger # Instantiate the libraries with global reference @@ -70,7 +70,7 @@ def _pin_value_update(self, state): ######################################################################### # This is how designer can interact with our widget properties. - # designer will show the pyqtProperty properties in the editor + # designer will show the Property properties in the editor # it will use the get set and reset calls to do those actions ######################################################################## @@ -81,20 +81,20 @@ def _toggle_properties(self, picked): if not i == picked: self[i+'_pin_type'] = False - @pyqtSlot(bool) - @pyqtSlot(int) + @Slot(bool) + @Slot(int) def pin_bit_update(self, value): self._pin_bit_update(value) - @pyqtSlot(int) - @pyqtSlot(float) + @Slot(int) + @Slot(float) def pin_value_update(self, value): self._pin_value_update(value) - @pyqtSlot() + @Slot() def set_pin_true(self): self._pin_bit_update(1) - @pyqtSlot() + @Slot() def set_pin_false(self): self._pin_bit_update(0) @@ -150,13 +150,13 @@ def reset_s32_scale(self): self._s32_scale = 1 # designer will show these properties in this order: - initial_state = pyqtProperty(bool, get_istate, set_istate, reset_istate) - initial_float = pyqtProperty(float, get_initial_float, set_initial_float, reset_initial_float) - pin_name = pyqtProperty(str, get_pin_name, set_pin_name, reset_pin_name) - bit_pin_type = pyqtProperty(bool, get_bit_pin_type, set_bit_pin_type, reset_bit_pin_type) - s32_float_pin_type = pyqtProperty(bool, get_s32_float_pin_type, set_s32_float_pin_type) - float_scale = pyqtProperty(float, get_float_scale, set_float_scale, reset_float_scale) - s32_scale = pyqtProperty(int, get_s32_scale, set_s32_scale, reset_s32_scale) + initial_state = Property(bool, get_istate, set_istate, reset_istate) + initial_float = Property(float, get_initial_float, set_initial_float, reset_initial_float) + pin_name = Property(str, get_pin_name, set_pin_name, reset_pin_name) + bit_pin_type = Property(bool, get_bit_pin_type, set_bit_pin_type, reset_bit_pin_type) + s32_float_pin_type = Property(bool, get_s32_float_pin_type, set_s32_float_pin_type) + float_scale = Property(float, get_float_scale, set_float_scale, reset_float_scale) + s32_scale = Property(int, get_s32_scale, set_s32_scale, reset_s32_scale) ############################## # required class boiler code # diff --git a/lib/python/qtvcp/widgets/hal_label.py b/lib/python/qtvcp/widgets/hal_label.py index 14eb8fb10d9..3126aa94cca 100644 --- a/lib/python/qtvcp/widgets/hal_label.py +++ b/lib/python/qtvcp/widgets/hal_label.py @@ -17,7 +17,7 @@ import hal from qtvcp.widgets.widget_baseclass import _HalWidgetBase -from PyQt5.QtCore import pyqtProperty, pyqtSlot, QVariant +from qtpy.QtCore import Property, Slot, QVariant from qtvcp.widgets.simple_widgets import ScaledLabel from qtvcp import logger @@ -78,19 +78,19 @@ def _changeText(self, data): # one can connect signals to this widget to # feed an input that gets formatted by this widget. - @pyqtSlot(float) - @pyqtSlot(int) - @pyqtSlot(bool) + @Slot(float) + @Slot(int) + @Slot(bool) def setDisplay(self, data): self._setText(data) - @pyqtSlot(int) + @Slot(int) def selectLabel(self,data): self._changeText(data) ######################################################################### # This is how designer can interact with our widget properties. - # designer will show the pyqtProperty properties in the editor + # designer will show the Property properties in the editor # it will use the get set and reset calls to do those actions ######################################################################## @@ -160,14 +160,14 @@ def reset_multi_label_l(self): self._multi_label_list = ['Label 0','Label 1','Label 2'] # designer will show these properties in this order: - pin_name = pyqtProperty(str, get_pin_name, set_pin_name, reset_pin_name) - bit_pin_type = pyqtProperty(bool, get_bit_pin_type, set_bit_pin_type, reset_bit_pin_type) - s32_pin_type = pyqtProperty(bool, get_s32_pin_type, set_s32_pin_type, reset_s32_pin_type) - float_pin_type = pyqtProperty(bool, get_float_pin_type, set_float_pin_type, reset_float_pin_type) - use_multi_label = pyqtProperty(bool, get_use_multi_label, set_use_multi_label, reset_use_multi_label) - textTemplate = pyqtProperty(str, get_textTemplate, set_textTemplate, reset_textTemplate) - - multi_label_list = pyqtProperty(QVariant.typeToName(QVariant.StringList), + pin_name = Property(str, get_pin_name, set_pin_name, reset_pin_name) + bit_pin_type = Property(bool, get_bit_pin_type, set_bit_pin_type, reset_bit_pin_type) + s32_pin_type = Property(bool, get_s32_pin_type, set_s32_pin_type, reset_s32_pin_type) + float_pin_type = Property(bool, get_float_pin_type, set_float_pin_type, reset_float_pin_type) + use_multi_label = Property(bool, get_use_multi_label, set_use_multi_label, reset_use_multi_label) + textTemplate = Property(str, get_textTemplate, set_textTemplate, reset_textTemplate) + + multi_label_list = Property(QVariant.typeToName(QVariant.StringList), get_multi_label_l, set_multi_label_l, reset_multi_label_l) ############################## # required class boiler code # diff --git a/lib/python/qtvcp/widgets/hal_selectionbox.py b/lib/python/qtvcp/widgets/hal_selectionbox.py index 740dd971130..67a94dfab22 100644 --- a/lib/python/qtvcp/widgets/hal_selectionbox.py +++ b/lib/python/qtvcp/widgets/hal_selectionbox.py @@ -14,9 +14,9 @@ # GNU General Public License for more details. ############################################################################### -from PyQt5.QtWidgets import QComboBox, QTreeView, QFrame -from PyQt5.QtGui import QStandardItemModel, QStandardItem -from PyQt5.QtCore import Qt, QEvent, QModelIndex, pyqtSignal +from qtpy.QtWidgets import QComboBox, QTreeView, QFrame +from qtpy.QtGui import QStandardItemModel, QStandardItem +from qtpy.QtCore import Qt, QEvent, QModelIndex, Signal import hal from qtvcp.widgets.widget_baseclass import _HalWidgetBase @@ -30,8 +30,8 @@ # LOG.setLevel(logger.INFO) # One of DEBUG, INFO, WARNING, ERROR, CRITICAL class TreeComboBox(QComboBox): - selectionUpdated = pyqtSignal('PyQt_PyObject') - objectSelected = pyqtSignal('PyQt_PyObject') + selectionUpdated = Signal('PyQt_PyObject') + objectSelected = Signal('PyQt_PyObject') NAME = 1 SELECTABLE = 2 OBJECT = 3 @@ -227,7 +227,7 @@ def __setitem__(self, item, value): # for testing without editor: def main(): import sys - from PyQt5.QtWidgets import QApplication + from qtpy.QtWidgets import QApplication app = QApplication(sys.argv) x = hal.component('_X_') diff --git a/lib/python/qtvcp/widgets/image_switcher.py b/lib/python/qtvcp/widgets/image_switcher.py index 4fb6dc62632..62d37a94478 100644 --- a/lib/python/qtvcp/widgets/image_switcher.py +++ b/lib/python/qtvcp/widgets/image_switcher.py @@ -17,9 +17,9 @@ import os -from PyQt5.QtCore import pyqtSignal, pyqtProperty, QVariant -from PyQt5.QtWidgets import QLabel -from PyQt5.QtGui import QPixmap +from qtpy.QtCore import Signal, Property, QVariant +from qtpy.QtWidgets import QLabel +from qtpy.QtGui import QPixmap from qtvcp.widgets.widget_baseclass import _HalWidgetBase from qtvcp.core import Status, Info, Tool, Path @@ -43,7 +43,7 @@ DEFAULTIMAGE = '' class ImageSwitcher(QLabel, _HalWidgetBase): - widgetChanged = pyqtSignal(int) + widgetChanged = Signal(int) def __init__(self, parent=None): super(ImageSwitcher, self).__init__(parent) @@ -113,7 +113,7 @@ def get_image_number(self): return self._current_number def reset_image_number(self): self._current_number = 0 - image_number = pyqtProperty(int, get_image_number, set_image_number, reset_image_number) + image_number = Property(int, get_image_number, set_image_number, reset_image_number) def set_image_l(self, data): self._imagePath = data @@ -121,7 +121,7 @@ def get_image_l(self): return self._imagePath def reset_image_l(self): self._imagePath = [self._defaultImage] - image_list = pyqtProperty(QVariant.typeToName(QVariant.StringList), get_image_l, set_image_l, reset_image_l) + image_list = Property(QVariant.typeToName(QVariant.StringList), get_image_l, set_image_l, reset_image_l) def setImagePath(self, data): self.defaultPixmap = data @@ -130,7 +130,7 @@ def getImagePath(self): def resetImagePath(self): self.defaultPixmap - image_default = pyqtProperty(QPixmap, getImagePath, setImagePath, resetImagePath) + image_default = Property(QPixmap, getImagePath, setImagePath, resetImagePath) ############################## @@ -283,7 +283,7 @@ def switch_on_toolinfo_state(self, tool_entry, index): ######################################################################### # This is how designer can interact with our widget properties. - # designer will show the pyqtProperty properties in the editor + # designer will show the Property properties in the editor # it will use the get set and reset calls to do those actions # # _toggle_properties makes it so we can only select one option @@ -310,7 +310,7 @@ def get_spindle(self): return self.spindle def reset_spindle(self): self.spindle = False - watch_spindle = pyqtProperty(bool, get_spindle, set_spindle, reset_spindle) + watch_spindle = Property(bool, get_spindle, set_spindle, reset_spindle) # machine_homed status def set_homed(self, data): @@ -321,7 +321,7 @@ def get_homed(self): return self.all_homed def reset_homed(self): self.all_homed = False - watch_all_homed = pyqtProperty(bool, get_homed, set_homed, reset_homed) + watch_all_homed = Property(bool, get_homed, set_homed, reset_homed) # machine_axis_homed status def set_axis_homed(self, data): @@ -332,7 +332,7 @@ def get_axis_homed(self): return self.axis_homed def reset_axis_homed(self): self.axis_homed = False - watch_axis_homed = pyqtProperty(bool, get_axis_homed, set_axis_homed, reset_axis_homed) + watch_axis_homed = Property(bool, get_axis_homed, set_axis_homed, reset_axis_homed) # machine_limits status @@ -344,7 +344,7 @@ def get_limits(self): return self.hard_limits def reset_limits(self): self.hard_limits = False - watch_hard_limits = pyqtProperty(bool, get_limits, set_limits, reset_limits) + watch_hard_limits = Property(bool, get_limits, set_limits, reset_limits) # machine_state status def set_machine_state(self, data): @@ -355,7 +355,7 @@ def get_machine_state(self): return self.machine_state def reset_machine_state(self): self.machine_state = False - watch_machine_state = pyqtProperty(bool, get_machine_state, set_machine_state, + watch_machine_state = Property(bool, get_machine_state, set_machine_state, reset_machine_state) # command_state status @@ -367,7 +367,7 @@ def get_command_state(self): return self.command_state def reset_command_state(self): self.command_state = False - watch_command_state = pyqtProperty(bool, get_command_state, set_command_state, + watch_command_state = Property(bool, get_command_state, set_command_state, reset_command_state) # feedmode_state status @@ -379,7 +379,7 @@ def get_feedmode_state(self): return self.feedmode_state def reset_feedmode_state(self): self.feedmode_state = False - watch_feedmode_state = pyqtProperty(bool, get_feedmode_state, set_feedmode_state, + watch_feedmode_state = Property(bool, get_feedmode_state, set_feedmode_state, reset_feedmode_state) # spindlemode_state status def set_spindlemode_state(self, data): @@ -390,7 +390,7 @@ def get_spindlemode_state(self): return self.spindlemode_state def reset_spindlemode_state(self): self.spindlemode_state = False - watch_spindlemode_state = pyqtProperty(bool, get_spindlemode_state, set_spindlemode_state, + watch_spindlemode_state = Property(bool, get_spindlemode_state, set_spindlemode_state, reset_spindlemode_state) # toolnumber_state status @@ -402,7 +402,7 @@ def get_toolnumber_state(self): return self.toolnumber_state def reset_toolnumber_state(self): self.toolnumber_state = False - watch_toolnumber_state = pyqtProperty(bool, get_toolnumber_state, set_toolnumber_state, + watch_toolnumber_state = Property(bool, get_toolnumber_state, set_toolnumber_state, reset_toolnumber_state) # tool_orientation_state status @@ -414,7 +414,7 @@ def get_tool_orientation_state(self): return self.tool_orientation_state def reset_tool_orientation_state(self): self.tool_orientation_state = False - watch_tool_orientation_state = pyqtProperty(bool, get_tool_orientation_state, set_tool_orientation_state, + watch_tool_orientation_state = Property(bool, get_tool_orientation_state, set_tool_orientation_state, reset_tool_orientation_state) def set_axis(self, data): @@ -424,7 +424,7 @@ def get_axis(self): return self.axis def reset_axis(self): self.axis = 'X' - axis_letter = pyqtProperty(str, get_axis, set_axis, reset_axis) + axis_letter = Property(str, get_axis, set_axis, reset_axis) ############################## # required class boiler code # @@ -440,7 +440,7 @@ def __setitem__(self, item, value): # for testing without editor: def main(): import sys - from PyQt5.QtWidgets import QApplication + from qtpy.QtWidgets import QApplication app = QApplication(sys.argv) widget = ImageSwitcher() widget._hal_init() diff --git a/lib/python/qtvcp/widgets/indicatorMixIn.py b/lib/python/qtvcp/widgets/indicatorMixIn.py index 4ae9c5a19ef..f3ed9e1439d 100644 --- a/lib/python/qtvcp/widgets/indicatorMixIn.py +++ b/lib/python/qtvcp/widgets/indicatorMixIn.py @@ -1,5 +1,5 @@ -from PyQt5 import QtCore, QtGui, QtWidgets -from PyQt5.QtCore import pyqtProperty, pyqtSlot +from qtpy import QtCore, QtGui, QtWidgets +from qtpy.QtCore import Property, Slot from qtvcp.widgets.widget_baseclass import (_HalWidgetBase) from qtvcp.lib.aux_program_loader import Aux_program_loader as _loader from qtvcp.core import Action, Status, Info @@ -378,7 +378,7 @@ def toggle_text(self, state=None): else: self.setText(None) - @pyqtSlot() + @Slot() def toggleFlashState(self): self._flashState = not self._flashState self.update() @@ -386,7 +386,7 @@ def toggleFlashState(self): def isFlashing(self): return self._flashing - @pyqtSlot(bool) + @Slot(bool) def setFlashing(self, value): #self._flashing = value if self._flashRate > 0 and value: @@ -658,7 +658,7 @@ def getFlashState(self): def getFlashRate(self): return self._flashRate - @pyqtSlot(int) + @Slot(int) def setFlashRate(self, value): self._flashRate = value self._timer.setInterval(self._flashRate) @@ -777,33 +777,33 @@ def get_pin_name(self): def reset_pin_name(self): self._pin_name_ = '' - pin_name = QtCore.pyqtProperty(str, get_pin_name, set_pin_name, reset_pin_name) - indicator_option = QtCore.pyqtProperty(bool, get_indicator, set_indicator, reset_indicator) - doubleIndicator = QtCore.pyqtProperty(bool, get_doubleIndicator, set_doubleIndicator, reset_doubleIndicator) - indicator_HAL_pin_option = QtCore.pyqtProperty(bool, get_HAL_pin, set_HAL_pin, reset_HAL_pin) - indicator_status_option = QtCore.pyqtProperty(bool, get_ind_status, set_ind_status, reset_ind_status) - checked_state_text_option = QtCore.pyqtProperty(bool, get_state_text, set_state_text, reset_state_text) - python_command_option = QtCore.pyqtProperty(bool, get_python_command, set_python_command, reset_python_command) - on_color = QtCore.pyqtProperty(QtGui.QColor, get_on_color, set_on_color) - shape_option = QtCore.pyqtProperty(int, get_shape, set_shape, reset_shape) - off_color = QtCore.pyqtProperty(QtGui.QColor, get_off_color, set_off_color) - flashIndicator = pyqtProperty(bool, getFlashState, setFlashState) - flashRate = pyqtProperty(int, getFlashRate, setFlashRate) - indicator_size = QtCore.pyqtProperty(float, get_indicator_size, set_indicator_size, reset_indicator_size) - circle_diameter = QtCore.pyqtProperty(int, get_circle_diameter, set_circle_diameter, reset_circle_diameter) - right_edge_offset = QtCore.pyqtProperty(int, get_right_edge_offset, set_right_edge_offset, reset_right_edge_offset) - top_edge_offset = QtCore.pyqtProperty(int, get_top_edge_offset, set_top_edge_offset, reset_top_edge_offset) - corner_radius = QtCore.pyqtProperty(float, get_corner_radius, set_corner_radius, reset_corner_radius) - height_fraction = QtCore.pyqtProperty(float, get_h_fraction, set_h_fraction, reset_h_fraction) - width_fraction = QtCore.pyqtProperty(float, get_w_fraction, set_w_fraction, reset_w_fraction) - true_state_string = QtCore.pyqtProperty(str, get_true_string, set_true_string, reset_true_string) - false_state_string = QtCore.pyqtProperty(str, get_false_string, set_false_string, reset_false_string) - true_python_cmd_string = QtCore.pyqtProperty(str, get_true_python_command, set_true_python_command, reset_true_python_command) - false_python_cmd_string = QtCore.pyqtProperty(str, get_false_python_command, set_false_python_command, reset_false_python_command) + pin_name = QtCore.Property(str, get_pin_name, set_pin_name, reset_pin_name) + indicator_option = QtCore.Property(bool, get_indicator, set_indicator, reset_indicator) + doubleIndicator = QtCore.Property(bool, get_doubleIndicator, set_doubleIndicator, reset_doubleIndicator) + indicator_HAL_pin_option = QtCore.Property(bool, get_HAL_pin, set_HAL_pin, reset_HAL_pin) + indicator_status_option = QtCore.Property(bool, get_ind_status, set_ind_status, reset_ind_status) + checked_state_text_option = QtCore.Property(bool, get_state_text, set_state_text, reset_state_text) + python_command_option = QtCore.Property(bool, get_python_command, set_python_command, reset_python_command) + on_color = QtCore.Property(QtGui.QColor, get_on_color, set_on_color) + shape_option = QtCore.Property(int, get_shape, set_shape, reset_shape) + off_color = QtCore.Property(QtGui.QColor, get_off_color, set_off_color) + flashIndicator = Property(bool, getFlashState, setFlashState) + flashRate = Property(int, getFlashRate, setFlashRate) + indicator_size = QtCore.Property(float, get_indicator_size, set_indicator_size, reset_indicator_size) + circle_diameter = QtCore.Property(int, get_circle_diameter, set_circle_diameter, reset_circle_diameter) + right_edge_offset = QtCore.Property(int, get_right_edge_offset, set_right_edge_offset, reset_right_edge_offset) + top_edge_offset = QtCore.Property(int, get_top_edge_offset, set_top_edge_offset, reset_top_edge_offset) + corner_radius = QtCore.Property(float, get_corner_radius, set_corner_radius, reset_corner_radius) + height_fraction = QtCore.Property(float, get_h_fraction, set_h_fraction, reset_h_fraction) + width_fraction = QtCore.Property(float, get_w_fraction, set_w_fraction, reset_w_fraction) + true_state_string = QtCore.Property(str, get_true_string, set_true_string, reset_true_string) + false_state_string = QtCore.Property(str, get_false_string, set_false_string, reset_false_string) + true_python_cmd_string = QtCore.Property(str, get_true_python_command, set_true_python_command, reset_true_python_command) + false_python_cmd_string = QtCore.Property(str, get_false_python_command, set_false_python_command, reset_false_python_command) ######################################################################### # This is how designer can interact with our widget properties. - # designer will show the QtCore.pyqtProperty properties in the editor + # designer will show the QtCore.Property properties in the editor # it will use the get set and reset calls to do those actions # # _toggle_status_properties makes it so we can only select one option @@ -1022,145 +1022,145 @@ def reset_joint_number(self): # designer will show these properties in this order: # BOOL - invert_the_status = QtCore.pyqtProperty(bool, get_invert_status, set_invert_status, reset_invert_status) - is_paused_status = QtCore.pyqtProperty(bool, get_is_paused, set_is_paused, reset_is_paused) - is_estopped_status = QtCore.pyqtProperty(bool, get_is_estopped, set_is_estopped, reset_is_estopped) - is_on_status = QtCore.pyqtProperty(bool, get_is_on, set_is_on, reset_is_on) - is_idle_status = QtCore.pyqtProperty(bool, get_is_idle, set_is_idle, reset_is_idle) - is_mdi_finished_status = QtCore.pyqtProperty(bool, get_is_mdi_fin, set_is_mdi_fin, reset_is_mdi_fin) - is_homed_status = QtCore.pyqtProperty(bool, get_is_homed, set_is_homed, reset_is_homed) - is_flood_status = QtCore.pyqtProperty(bool, get_is_flood, set_is_flood, reset_is_flood) - is_mist_status = QtCore.pyqtProperty(bool, get_is_mist, set_is_mist, reset_is_mist) - is_block_delete_status = QtCore.pyqtProperty(bool, get_is_block_delete, set_is_block_delete, reset_is_block_delete) - is_optional_stop_status = QtCore.pyqtProperty(bool, get_is_optional_stop, set_is_optional_stop, reset_is_optional_stop) - is_joint_homed_status = QtCore.pyqtProperty(bool, get_is_joint_homed, set_is_joint_homed, reset_is_joint_homed) - is_limits_overridden_status = QtCore.pyqtProperty(bool, get_is_limits_overridden, set_is_limits_overridden, + invert_the_status = QtCore.Property(bool, get_invert_status, set_invert_status, reset_invert_status) + is_paused_status = QtCore.Property(bool, get_is_paused, set_is_paused, reset_is_paused) + is_estopped_status = QtCore.Property(bool, get_is_estopped, set_is_estopped, reset_is_estopped) + is_on_status = QtCore.Property(bool, get_is_on, set_is_on, reset_is_on) + is_idle_status = QtCore.Property(bool, get_is_idle, set_is_idle, reset_is_idle) + is_mdi_finished_status = QtCore.Property(bool, get_is_mdi_fin, set_is_mdi_fin, reset_is_mdi_fin) + is_homed_status = QtCore.Property(bool, get_is_homed, set_is_homed, reset_is_homed) + is_flood_status = QtCore.Property(bool, get_is_flood, set_is_flood, reset_is_flood) + is_mist_status = QtCore.Property(bool, get_is_mist, set_is_mist, reset_is_mist) + is_block_delete_status = QtCore.Property(bool, get_is_block_delete, set_is_block_delete, reset_is_block_delete) + is_optional_stop_status = QtCore.Property(bool, get_is_optional_stop, set_is_optional_stop, reset_is_optional_stop) + is_joint_homed_status = QtCore.Property(bool, get_is_joint_homed, set_is_joint_homed, reset_is_joint_homed) + is_limits_overridden_status = QtCore.Property(bool, get_is_limits_overridden, set_is_limits_overridden, reset_is_limits_overridden) - is_manual_status = QtCore.pyqtProperty(bool, get_is_manual, set_is_manual, reset_is_manual) - is_mdi_status = QtCore.pyqtProperty(bool, get_is_mdi, set_is_mdi, reset_is_mdi) - is_auto_status = QtCore.pyqtProperty(bool, get_is_auto, set_is_auto, reset_is_auto) - is_spindle_stopped_status = QtCore.pyqtProperty(bool, get_is_spindle_stopped, set_is_spindle_stopped, reset_is_spindle_stopped) - is_spindle_fwd_status = QtCore.pyqtProperty(bool, get_is_spindle_fwd, set_is_spindle_fwd, reset_is_spindle_fwd) - is_spindle_rev_status = QtCore.pyqtProperty(bool, get_is_spindle_rev, set_is_spindle_rev, reset_is_spindle_rev) + is_manual_status = QtCore.Property(bool, get_is_manual, set_is_manual, reset_is_manual) + is_mdi_status = QtCore.Property(bool, get_is_mdi, set_is_mdi, reset_is_mdi) + is_auto_status = QtCore.Property(bool, get_is_auto, set_is_auto, reset_is_auto) + is_spindle_stopped_status = QtCore.Property(bool, get_is_spindle_stopped, set_is_spindle_stopped, reset_is_spindle_stopped) + is_spindle_fwd_status = QtCore.Property(bool, get_is_spindle_fwd, set_is_spindle_fwd, reset_is_spindle_fwd) + is_spindle_rev_status = QtCore.Property(bool, get_is_spindle_rev, set_is_spindle_rev, reset_is_spindle_rev) # NON BOOL - joint_number_status = QtCore.pyqtProperty(int, get_joint_number, set_joint_number, reset_joint_number) + joint_number_status = QtCore.Property(int, get_joint_number, set_joint_number, reset_joint_number) # properties for stylesheet dynamic changes def setisManual(self, data): self._isManualProp = data def getisManual(self): return self._isManualProp - isManual = QtCore.pyqtProperty(bool, getisManual, setisManual) + isManual = QtCore.Property(bool, getisManual, setisManual) def setisMDI(self, data): self._isMDIProp = data def getisMDI(self): return self._isMDIProp - isMDI = QtCore.pyqtProperty(bool, getisMDI, setisMDI) + isMDI = QtCore.Property(bool, getisMDI, setisMDI) def setisAuto(self, data): self._isAutoProp = data def getisAuto(self): return self._isAutoProp - isAuto = QtCore.pyqtProperty(bool, getisAuto, setisAuto) + isAuto = QtCore.Property(bool, getisAuto, setisAuto) def setisEstop(self, data): self._isEstopProp = data def getisEstop(self): return self._isEstopProp - isEstop = QtCore.pyqtProperty(bool, getisEstop, setisEstop) + isEstop = QtCore.Property(bool, getisEstop, setisEstop) def setisStateOn(self, data): self._isStateOnProp = data def getisStateOn(self): return self._isStateOnProp - isStateOn = QtCore.pyqtProperty(bool, getisStateOn, setisStateOn) + isStateOn = QtCore.Property(bool, getisStateOn, setisStateOn) def setisHomed(self, data): self._isHomed = data def getisHomed(self): return self._isHomed - isHomed = QtCore.pyqtProperty(bool, getisHomed, setisHomed) + isHomed = QtCore.Property(bool, getisHomed, setisHomed) def setisAllHomed(self, data): self._isAllHomed = data def getisAllHomed(self): return self._isAllHomed - isAllHomed = QtCore.pyqtProperty(bool, getisAllHomed, setisAllHomed) + isAllHomed = QtCore.Property(bool, getisAllHomed, setisAllHomed) # properties for enable/disable button on status state def setisAllHomedSensitive(self, data): self._is_all_homed_sensitive = data def getisAllHomedSensitive(self): return self._is_all_homed_sensitive - isAllHomedSensitive = QtCore.pyqtProperty(bool, getisAllHomedSensitive, setisAllHomedSensitive) + isAllHomedSensitive = QtCore.Property(bool, getisAllHomedSensitive, setisAllHomedSensitive) def setisOnSensitive(self, data): self._is_on_sensitive = data def getisOnSensitive(self): return self._is_on_sensitive - isOnSensitive = QtCore.pyqtProperty(bool, getisOnSensitive, setisOnSensitive) + isOnSensitive = QtCore.Property(bool, getisOnSensitive, setisOnSensitive) def setisIdleSensitive(self, data): self._is_idle_sensitive = data def getisIdleSensitive(self): return self._is_idle_sensitive - isIdleSensitive = QtCore.pyqtProperty(bool, getisIdleSensitive, setisIdleSensitive) + isIdleSensitive = QtCore.Property(bool, getisIdleSensitive, setisIdleSensitive) def setisRunSensitive(self, data): self._is_run_sensitive = data def getisRunSensitive(self): return self._is_run_sensitive - isRunSensitive = QtCore.pyqtProperty(bool, getisRunSensitive, setisRunSensitive) + isRunSensitive = QtCore.Property(bool, getisRunSensitive, setisRunSensitive) def setisRunPauseSensitive(self, data): self._is_run_paused_sensitive = data def getisRunPauseSensitive(self): return self._is_run_paused_sensitive - isRunPausedSensitive = QtCore.pyqtProperty(bool, getisRunPauseSensitive, setisRunPauseSensitive) + isRunPausedSensitive = QtCore.Property(bool, getisRunPauseSensitive, setisRunPauseSensitive) def setisAutoPauseSensitive(self, data): self._is_auto_pause_sensitive = data def getisAutoPauseSensitive(self): return self._is_auto_pause_sensitive - isAutoPauseSensitive = QtCore.pyqtProperty(bool, getisAutoPauseSensitive, setisAutoPauseSensitive) + isAutoPauseSensitive = QtCore.Property(bool, getisAutoPauseSensitive, setisAutoPauseSensitive) def setisManSensitive(self, data): self._is_manual_sensitive = data def getisManSensitive(self): return self._is_manual_sensitive - isManSensitive = QtCore.pyqtProperty(bool, getisManSensitive, setisManSensitive) + isManSensitive = QtCore.Property(bool, getisManSensitive, setisManSensitive) def setisMDISensitive(self, data): self._is_mdi_sensitive = data def getisMDISensitive(self): return self._is_mdi_sensitive - isMDISensitive = QtCore.pyqtProperty(bool, getisMDISensitive, setisMDISensitive) + isMDISensitive = QtCore.Property(bool, getisMDISensitive, setisMDISensitive) def setisAutoSensitive(self, data): self._is_auto_sensitive = data def getisAutoSensitive(self): return self._is_auto_sensitive - isAutoSensitive = QtCore.pyqtProperty(bool, getisAutoSensitive, setisAutoSensitive) + isAutoSensitive = QtCore.Property(bool, getisAutoSensitive, setisAutoSensitive) def setisSpindleOffSensitive(self, data): self._is_spindle_off_sensitive = data def getisSpindleOffSensitive(self): return self._is_spindle_off_sensitive - isSpindleOffSensitive = QtCore.pyqtProperty(bool, getisSpindleOffSensitive, setisSpindleOffSensitive) + isSpindleOffSensitive = QtCore.Property(bool, getisSpindleOffSensitive, setisSpindleOffSensitive) def setisSpindleFwdSensitive(self, data): self._is_spindle_fwd_sensitive = data def getisSpindleFwdSensitive(self): return self._is_spindle_fwd_sensitive - isSpindleFwdSensitive = QtCore.pyqtProperty(bool, getisSpindleFwdSensitive, setisSpindleFwdSensitive) + isSpindleFwdSensitive = QtCore.Property(bool, getisSpindleFwdSensitive, setisSpindleFwdSensitive) def setisSpindleRevSensitive(self, data): self._is_spindle_rev_sensitive = data def getisSpindleRevSensitive(self): return self._is_spindle_rev_sensitive - isSpindleRevSensitive = QtCore.pyqtProperty(bool, getisSpindleRevSensitive, setisSpindleRevSensitive) + isSpindleRevSensitive = QtCore.Property(bool, getisSpindleRevSensitive, setisSpindleRevSensitive) # boilder code def __getitem__(self, item): @@ -1176,7 +1176,7 @@ def __init__(self, parent=None): # for testing without editor: def main(): import sys - from PyQt5.QtWidgets import QApplication + from qtpy.QtWidgets import QApplication app = QApplication(sys.argv) widget = IndicatedToolButton() widget.setCheckable(True) diff --git a/lib/python/qtvcp/widgets/jog_increments.py b/lib/python/qtvcp/widgets/jog_increments.py index 19037cddb02..d1681e4cfae 100644 --- a/lib/python/qtvcp/widgets/jog_increments.py +++ b/lib/python/qtvcp/widgets/jog_increments.py @@ -15,7 +15,7 @@ # ################################################################################# -from PyQt5 import QtCore, QtWidgets +from qtpy import QtCore, QtWidgets import hal from qtvcp.widgets.widget_baseclass import _HalWidgetBase @@ -176,7 +176,7 @@ def conversion(self, data, metric = True): ######################################################################### # This is how designer can interact with our widget properties. - # designer will show the pyqtProperty properties in the editor + # designer will show the Property properties in the editor # it will use the get set and reset calls to do those actions # # _toggle_properties makes it so we can only select one option @@ -198,7 +198,7 @@ def reset_linear(self): # designer will show these properties in this order: # BOOL - linear_option = QtCore.pyqtProperty(bool, get_linear, set_linear, reset_linear) + linear_option = QtCore.Property(bool, get_linear, set_linear, reset_linear) # VARIABLES--------------------------- def set_pin_name(self, value): @@ -208,7 +208,7 @@ def get_pin_name(self): def reset_pin_name(self): self._pin_name = '' - pinName = QtCore.pyqtProperty(str, get_pin_name, set_pin_name, reset_pin_name) + pinName = QtCore.Property(str, get_pin_name, set_pin_name, reset_pin_name) if __name__ == "__main__": diff --git a/lib/python/qtvcp/widgets/joypad.py b/lib/python/qtvcp/widgets/joypad.py index 492ba8d33f3..fca1d52e796 100644 --- a/lib/python/qtvcp/widgets/joypad.py +++ b/lib/python/qtvcp/widgets/joypad.py @@ -14,15 +14,15 @@ # GNU General Public License for more details. ############################################################################### import sys -from PyQt5 import QtCore, QtGui, QtWidgets -from PyQt5.QtCore import Qt, QPoint, QPointF, QRect, QRectF, QSize, QSizeF, QEvent -from PyQt5.QtGui import QPainter, QPainterPath, QPen, QBrush, QColor, QFont, QPixmap, QRadialGradient +from qtpy import QtCore, QtGui, QtWidgets +from qtpy.QtCore import Qt, QPoint, QPointF, QRect, QRectF, QSize, QSizeF, QEvent +from qtpy.QtGui import QPainter, QPainterPath, QPen, QBrush, QColor, QFont, QPixmap, QRadialGradient try: - from PyQt5.QtCore import Q_ENUM + from qtpy.QtCore import Q_ENUM except: # before qt5.10 - from PyQt5.QtCore import Q_ENUMS as Q_ENUM + from qtpy.QtCore import Q_ENUMS as Q_ENUM import hal from qtvcp.widgets.widget_baseclass import _HalWidgetBase @@ -41,18 +41,18 @@ class JoyPad(QtWidgets.QWidget, IndicatorPosition): IndicatorPosition = IndicatorPosition Q_ENUM(IndicatorPosition) - joy_btn_pressed = QtCore.pyqtSignal(str) - joy_btn_released = QtCore.pyqtSignal(str) - joy_l_pressed = QtCore.pyqtSignal(bool) - joy_l_released = QtCore.pyqtSignal(bool) - joy_r_pressed = QtCore.pyqtSignal(bool) - joy_r_released = QtCore.pyqtSignal(bool) - joy_c_pressed = QtCore.pyqtSignal(bool) - joy_c_released = QtCore.pyqtSignal(bool) - joy_t_pressed = QtCore.pyqtSignal(bool) - joy_t_released = QtCore.pyqtSignal(bool) - joy_b_pressed = QtCore.pyqtSignal(bool) - joy_b_released = QtCore.pyqtSignal(bool) + joy_btn_pressed = QtCore.Signal(str) + joy_btn_released = QtCore.Signal(str) + joy_l_pressed = QtCore.Signal(bool) + joy_l_released = QtCore.Signal(bool) + joy_r_pressed = QtCore.Signal(bool) + joy_r_released = QtCore.Signal(bool) + joy_c_pressed = QtCore.Signal(bool) + joy_c_released = QtCore.Signal(bool) + joy_t_pressed = QtCore.Signal(bool) + joy_t_released = QtCore.Signal(bool) + joy_b_pressed = QtCore.Signal(bool) + joy_b_released = QtCore.Signal(bool) def __init__(self, parent=None): super(JoyPad, self).__init__(parent) self.rect1 = QRectF() @@ -326,17 +326,17 @@ def reset_HighlightPosition(self): self.reset_highlight() self.update() - highlightPosition = QtCore.pyqtProperty(IndicatorPosition, + highlightPosition = QtCore.Property(IndicatorPosition, get_HighlightPosition, set_HighlightPosition, reset_HighlightPosition) - @QtCore.pyqtSlot() + @QtCore.Slot() def set_colorStateTrue(self): self.setLight(True) - @QtCore.pyqtSlot() + @QtCore.Slot() def set_colorStateFalse(self): self.setLight(False) - @QtCore.pyqtSlot(bool) + @QtCore.Slot(bool) def set_colorState(self, state): self.colorState = bool(state) self.setLight(state) @@ -348,7 +348,7 @@ def reset_colorState(self): self.colorState = False self.setLight(False) - setColorState = QtCore.pyqtProperty(bool, get_colorState, set_colorState, reset_colorState) + setColorState = QtCore.Property(bool, get_colorState, set_colorState, reset_colorState) def setLeftImagePath(self, data): if data.isNull(): @@ -398,11 +398,11 @@ def getBottomImagePath(self): def resetBottomImagePath(self): pass - left_image_path = QtCore.pyqtProperty(QPixmap, getLeftImagePath, setLeftImagePath, resetLeftImagePath) - right_image_path = QtCore.pyqtProperty(QPixmap, getRightImagePath, setRightImagePath, resetRightImagePath) - center_image_path = QtCore.pyqtProperty(QPixmap, getCenterImagePath, setCenterImagePath, resetCenterImagePath) - top_image_path = QtCore.pyqtProperty(QPixmap, getTopImagePath, setTopImagePath, resetTopImagePath) - bottom_image_path = QtCore.pyqtProperty(QPixmap, getBottomImagePath, setBottomImagePath, resetBottomImagePath) + left_image_path = QtCore.Property(QPixmap, getLeftImagePath, setLeftImagePath, resetLeftImagePath) + right_image_path = QtCore.Property(QPixmap, getRightImagePath, setRightImagePath, resetRightImagePath) + center_image_path = QtCore.Property(QPixmap, getCenterImagePath, setCenterImagePath, resetCenterImagePath) + top_image_path = QtCore.Property(QPixmap, getTopImagePath, setTopImagePath, resetTopImagePath) + bottom_image_path = QtCore.Property(QPixmap, getBottomImagePath, setBottomImagePath, resetBottomImagePath) def getFont(self): @@ -411,7 +411,7 @@ def setFont(self, value): self._font = value def resetFont(self): self._font = QFont('Lato Heavy', 20) - button_font = QtCore.pyqtProperty(QFont, getFont, setFont, resetFont) + button_font = QtCore.Property(QFont, getFont, setFont, resetFont) def setLeftText(self, data): self._textL = data @@ -468,17 +468,17 @@ def resetBottomText(self): self._textB = '' self.set_icon('B', 'text', '') - left_text = QtCore.pyqtProperty(str, getLeftText, setLeftText, resetLeftText) - right_text = QtCore.pyqtProperty(str, getRightText, setRightText, resetRightText) - center_text = QtCore.pyqtProperty(str, getCenterText, setCenterText, resetCenterText) - top_text = QtCore.pyqtProperty(str, getTopText, setTopText, resetTopText) - bottom_text = QtCore.pyqtProperty(str, getBottomText, setBottomText, resetBottomText) + left_text = QtCore.Property(str, getLeftText, setLeftText, resetLeftText) + right_text = QtCore.Property(str, getRightText, setRightText, resetRightText) + center_text = QtCore.Property(str, getCenterText, setCenterText, resetCenterText) + top_text = QtCore.Property(str, getTopText, setTopText, resetTopText) + bottom_text = QtCore.Property(str, getBottomText, setBottomText, resetBottomText) - @QtCore.pyqtSlot(QColor) + @QtCore.Slot(QColor) def set_true_color(self, color): self._true_color = color self.setLight(self.colorState) - @QtCore.pyqtSlot(str) + @QtCore.Slot(str) def set_true_color(self, color): self._true_color = QColor(color) self.setLight(self.colorState) @@ -490,11 +490,11 @@ def reset_true_color(self): self._true_color = QColor('lawngreen') self.setLight(self.colorState) - @QtCore.pyqtSlot(QColor) + @QtCore.Slot(QColor) def set_false_color(self, color): self._false_color = color self.setLight(self.colorState) - @QtCore.pyqtSlot(str) + @QtCore.Slot(str) def set_false_color(self, color): self._false_color = QColor(color) self.setLight(self.colorState) @@ -515,15 +515,15 @@ def reset_text_color(self): self._text_color = QColor('white') self.update() - true_color = QtCore.pyqtProperty(QColor, get_true_color, set_true_color, reset_true_color) - false_color = QtCore.pyqtProperty(QColor, get_false_color, set_false_color, reset_false_color) - text_color = QtCore.pyqtProperty(QColor, get_text_color, set_text_color, reset_text_color) + true_color = QtCore.Property(QColor, get_true_color, set_true_color, reset_true_color) + false_color = QtCore.Property(QColor, get_false_color, set_false_color, reset_false_color) + text_color = QtCore.Property(QColor, get_text_color, set_text_color, reset_text_color) - @QtCore.pyqtSlot(str) + @QtCore.Slot(str) def btn_pressed(self, btn): print("Button pressed", btn) - @QtCore.pyqtSlot(str) + @QtCore.Slot(str) def btn_released(self, btn): print("Button released", btn) @@ -625,7 +625,7 @@ def setPinTrueOutput(self, btn, data): ######################################################################### # This is how designer can interact with our widget properties. - # designer will show the pyqtProperty properties in the editor + # designer will show the Property properties in the editor # it will use the get set and reset calls to do those actions ######################################################################## @@ -645,15 +645,15 @@ def reset_pin_type(self): self._pin_type = HALPinType.BIT # designer will show these properties in this order: - pin_type = QtCore.pyqtProperty(HALPinType, get_pin_type, set_pin_type, reset_pin_type) - pin_name = QtCore.pyqtProperty(str, get_pin_name, set_pin_name, reset_pin_name) + pin_type = QtCore.Property(HALPinType, get_pin_type, set_pin_type, reset_pin_type) + pin_name = QtCore.Property(str, get_pin_name, set_pin_name, reset_pin_name) ############################# # Testing # ############################# if __name__ == "__main__": import sys - from PyQt5.QtWidgets import QWidget + from qtpy.QtWidgets import QWidget app = QtWidgets.QApplication(sys.argv) w = QWidget() w.setGeometry(100, 100, 600, 400) diff --git a/lib/python/qtvcp/widgets/led_widget.py b/lib/python/qtvcp/widgets/led_widget.py index 513328e3991..9136e92b181 100644 --- a/lib/python/qtvcp/widgets/led_widget.py +++ b/lib/python/qtvcp/widgets/led_widget.py @@ -15,9 +15,9 @@ # ################################################################################# -from PyQt5.QtCore import pyqtProperty, pyqtSlot, Qt, QTimer, QSize -from PyQt5.QtGui import QColor, QPainter, QBrush, QRadialGradient -from PyQt5.QtWidgets import QWidget +from qtpy.QtCore import Property, Slot, Qt, QTimer, QSize +from qtpy.QtGui import QColor, QPainter, QBrush, QRadialGradient +from qtpy.QtWidgets import QWidget from qtvcp.widgets.widget_baseclass import _HalWidgetBase, hal from qtvcp import logger @@ -67,7 +67,7 @@ def _hal_init(self): self.hal_pin = self.HAL_GCOMP_.newpin(pname, hal.HAL_BIT, hal.HAL_IN) self.hal_pin.value_changed.connect(lambda s: self.change_state(s)) - @pyqtSlot(bool) + @Slot(bool) def change_state(self, data): self.state = data if data and self.flash: @@ -137,7 +137,7 @@ def get_halpin_option(self): def reset_halpin_option(self): self._halpin_option = True - @pyqtSlot(int) + @Slot(int) def setDiameter(self, value): self._diameter = value self.update() @@ -145,7 +145,7 @@ def setDiameter(self, value): def getColor(self): return self._color - @pyqtSlot(QColor) + @Slot(QColor) def setColor(self, value): self._color = value self.update() @@ -153,14 +153,14 @@ def setColor(self, value): def getOffColor(self): return self._off_color - @pyqtSlot(QColor) + @Slot(QColor) def setOffColor(self, value): self._off_color = value self.update() def getOnGradientColor(self): return self._on_gradient_color - @pyqtSlot(QColor) + @Slot(QColor) def setOnGradientColor(self, value): self._on_gradient_color = value self.update() @@ -170,7 +170,7 @@ def resetOnGradientColor(self, value): def getOffGradientColor(self): return self._off_gradient_color - @pyqtSlot(QColor) + @Slot(QColor) def setOffGradientColor(self, value): self._off_gradient_color = value self.update() @@ -181,7 +181,7 @@ def resetOffGradientColor(self, value): def getGradient(self): return self._gradient - @pyqtSlot(bool) + @Slot(bool) def setGradient(self, value): self._gradient = value self.update() @@ -192,7 +192,7 @@ def resetGradient(self): def getBorderColor(self): return self._border_color - @pyqtSlot(QColor) + @Slot(QColor) def setBorderColor(self, value): self._border_color = value self.update() @@ -200,7 +200,7 @@ def setBorderColor(self, value): def getAlignment(self): return self._alignment - @pyqtSlot(Qt.Alignment) + @Slot(Qt.Alignment) def setAlignment(self, value): self._alignment = value self.update() @@ -208,8 +208,8 @@ def setAlignment(self, value): def resetAlignment(self): self._alignment = Qt.AlignCenter - @pyqtSlot(bool) - @pyqtSlot(int) + @Slot(bool) + @Slot(int) def setState(self, value): self.state = self._state = value self.update() @@ -220,7 +220,7 @@ def getState(self): def resetState(self): self.state = self._state = False - @pyqtSlot() + @Slot() def toggleState(self): self._state = not self._state self.update() @@ -228,7 +228,7 @@ def toggleState(self): def isFlashing(self): return self._flashing - @pyqtSlot(bool) + @Slot(bool) def setFlashing(self, value): self._flashing = value if self._flashRate > 0 and value: @@ -252,7 +252,7 @@ def getFlashState(self): def getFlashRate(self): return self._flashRate - @pyqtSlot(int) + @Slot(int) def setFlashRate(self, value): self._flashRate = value self.update() @@ -264,24 +264,24 @@ def get_pin_name(self): def reset_pin_name(self): self._pin_name_ = '' - pin_name = pyqtProperty(str, get_pin_name, set_pin_name, reset_pin_name) - halpin_option = pyqtProperty(bool, get_halpin_option, set_halpin_option, reset_halpin_option) - diameter = pyqtProperty(int, getDiameter, setDiameter) - gradient = pyqtProperty(bool, getGradient, setGradient, resetGradient) - color = pyqtProperty(QColor, getColor, setColor) - off_color = pyqtProperty(QColor, getOffColor, setOffColor) - off_gradient_color = pyqtProperty(QColor, getOffGradientColor, setOffGradientColor, resetOffGradientColor) - on_gradient_color = pyqtProperty(QColor, getOnGradientColor, setOnGradientColor, resetOnGradientColor) - border_color = pyqtProperty(QColor, getBorderColor, setBorderColor) - alignment = pyqtProperty(Qt.Alignment, getAlignment, setAlignment, resetAlignment) - currentstate = pyqtProperty(bool, getState, setState, resetState) - flashing = pyqtProperty(bool, getFlashState, setFlashState) - flashRate = pyqtProperty(int, getFlashRate, setFlashRate) + pin_name = Property(str, get_pin_name, set_pin_name, reset_pin_name) + halpin_option = Property(bool, get_halpin_option, set_halpin_option, reset_halpin_option) + diameter = Property(int, getDiameter, setDiameter) + gradient = Property(bool, getGradient, setGradient, resetGradient) + color = Property(QColor, getColor, setColor) + off_color = Property(QColor, getOffColor, setOffColor) + off_gradient_color = Property(QColor, getOffGradientColor, setOffGradientColor, resetOffGradientColor) + on_gradient_color = Property(QColor, getOnGradientColor, setOnGradientColor, resetOnGradientColor) + border_color = Property(QColor, getBorderColor, setBorderColor) + alignment = Property(Qt.Alignment, getAlignment, setAlignment, resetAlignment) + currentstate = Property(bool, getState, setState, resetState) + flashing = Property(bool, getFlashState, setFlashState) + flashRate = Property(int, getFlashRate, setFlashRate) if __name__ == "__main__": import sys - from PyQt5.QtWidgets import QApplication + from qtpy.QtWidgets import QApplication app = QApplication(sys.argv) led = LED() led.show() diff --git a/lib/python/qtvcp/widgets/machine_log.py b/lib/python/qtvcp/widgets/machine_log.py index 2478630536e..aa9043690bb 100644 --- a/lib/python/qtvcp/widgets/machine_log.py +++ b/lib/python/qtvcp/widgets/machine_log.py @@ -18,10 +18,10 @@ import hashlib import time -from PyQt5.QtWidgets import QWidget, QTextEdit, QTableWidget, QTableWidgetItem, QVBoxLayout -from PyQt5.QtCore import QFile, pyqtProperty -import PyQt5.QtWidgets as QtWidgets -from PyQt5.QtGui import QColor +from qtpy.QtWidgets import QWidget, QTextEdit, QTableWidget, QTableWidgetItem, QVBoxLayout +from qtpy.QtCore import QFile, Property +import qtpy.QtWidgets as QtWidgets +from qtpy.QtGui import QColor from qtvcp.widgets.widget_baseclass import _HalWidgetBase from qtvcp.core import Status, Info from qtvcp import logger @@ -267,7 +267,7 @@ def get_machine_log(self): return self._machine_log def reset_machine_log(self): self._machine_log = True - machine_log_option = pyqtProperty(bool, get_machine_log, set_machine_log, reset_machine_log) + machine_log_option = Property(bool, get_machine_log, set_machine_log, reset_machine_log) def set_machine_log_severity(self, value): self._machine_log_severity = value @@ -277,7 +277,7 @@ def get_machine_log_severity(self): return self._machine_log_severity def reset_machine_log_severity(self): self._machine_log_severity = False - machine_log_severity_option = pyqtProperty(bool, get_machine_log_severity, set_machine_log_severity, reset_machine_log_severity) + machine_log_severity_option = Property(bool, get_machine_log_severity, set_machine_log_severity, reset_machine_log_severity) def set_integrator_log(self, value): @@ -288,7 +288,7 @@ def get_integrator_log(self): return self._integrator_log def reset_integrator_log(self): self._integrator_log = False - integrator_log_option = pyqtProperty(bool, get_integrator_log, set_integrator_log, reset_integrator_log) + integrator_log_option = Property(bool, get_integrator_log, set_integrator_log, reset_integrator_log) def set_critical_fg_color(self, value): self._critical_fg_color = value @@ -297,7 +297,7 @@ def get_critical_fg_color(self): def reset_critical_fg_color(self): self._critical_fg_color = QColor(255, 255, 255) - critical_fg_color_option = pyqtProperty(QColor, get_critical_fg_color, set_critical_fg_color, reset_critical_fg_color) + critical_fg_color_option = Property(QColor, get_critical_fg_color, set_critical_fg_color, reset_critical_fg_color) def set_critical_bg_color(self, value): self._critical_bg_color = value @@ -306,7 +306,7 @@ def get_critical_bg_color(self): def reset_critical_bg_color(self): self._critical_bg_color = QColor(255, 0, 0) - critical_bg_color_option = pyqtProperty(QColor, get_critical_bg_color, set_critical_bg_color, reset_critical_bg_color) + critical_bg_color_option = Property(QColor, get_critical_bg_color, set_critical_bg_color, reset_critical_bg_color) def set_error_fg_color(self, value): self._error_fg_color = value @@ -315,7 +315,7 @@ def get_error_fg_color(self): def reset_error_fg_color(self): self._error_fg_color = QColor(255, 0, 0) - error_fg_color_option = pyqtProperty(QColor, get_error_fg_color, set_error_fg_color, reset_error_fg_color) + error_fg_color_option = Property(QColor, get_error_fg_color, set_error_fg_color, reset_error_fg_color) def set_error_bg_color(self, value): self._error_bg_color = value @@ -324,7 +324,7 @@ def get_error_bg_color(self): def reset_error_bg_color(self): self._error_bg_color = QColor(255, 255, 255) - error_bg_color_option = pyqtProperty(QColor, get_error_bg_color, set_error_bg_color, reset_error_bg_color) + error_bg_color_option = Property(QColor, get_error_bg_color, set_error_bg_color, reset_error_bg_color) def set_warning_fg_color(self, value): self._warning_fg_color = value @@ -333,7 +333,7 @@ def get_warning_fg_color(self): def reset_warning_fg_color(self): self._warning_fg_color = QColor(255, 255, 0) - warning_fg_color_option = pyqtProperty(QColor, get_warning_fg_color, set_warning_fg_color, reset_warning_fg_color) + warning_fg_color_option = Property(QColor, get_warning_fg_color, set_warning_fg_color, reset_warning_fg_color) def set_warning_bg_color(self, value): self._warning_bg_color = value @@ -342,7 +342,7 @@ def get_warning_bg_color(self): def reset_warning_bg_color(self): self._warning_bg_color = QColor(255, 255, 255) - warning_bg_color_option = pyqtProperty(QColor, get_warning_bg_color, set_warning_bg_color, reset_warning_bg_color) + warning_bg_color_option = Property(QColor, get_warning_bg_color, set_warning_bg_color, reset_warning_bg_color) def set_debug_fg_color(self, value): self._debug_fg_color = value @@ -351,7 +351,7 @@ def get_debug_fg_color(self): def reset_debug_fg_color(self): self._debug_fg_color = QColor(128, 128, 128) - debug_fg_color_option = pyqtProperty(QColor, get_debug_fg_color, set_debug_fg_color, reset_debug_fg_color) + debug_fg_color_option = Property(QColor, get_debug_fg_color, set_debug_fg_color, reset_debug_fg_color) def set_debug_bg_color(self, value): self._debug_bg_color = value @@ -360,7 +360,7 @@ def get_debug_bg_color(self): def reset_debug_bg_color(self): self._debug_bg_color = QColor(255, 255, 255) - debug_bg_color_option = pyqtProperty(QColor, get_debug_bg_color, set_debug_bg_color, reset_debug_bg_color) + debug_bg_color_option = Property(QColor, get_debug_bg_color, set_debug_bg_color, reset_debug_bg_color) def set_info_fg_color(self, value): self._info_fg_color = value @@ -369,7 +369,7 @@ def get_info_fg_color(self): def reset_info_fg_color(self): self._info_fg_color = QColor(0, 0, 0) - info_fg_color_option = pyqtProperty(QColor, get_info_fg_color, set_info_fg_color, reset_info_fg_color) + info_fg_color_option = Property(QColor, get_info_fg_color, set_info_fg_color, reset_info_fg_color) def set_info_bg_color(self, value): self._info_bg_color = value @@ -378,7 +378,7 @@ def get_info_bg_color(self): def reset_info_bg_color(self): self._info_bg_color = QColor(255, 255, 255) - info_bg_color_option = pyqtProperty(QColor, get_info_bg_color, set_info_bg_color, reset_info_bg_color) + info_bg_color_option = Property(QColor, get_info_bg_color, set_info_bg_color, reset_info_bg_color) ############################## # required class boiler code # @@ -392,7 +392,7 @@ def __setitem__(self, item, value): # for testing without editor: def main(): import sys - from PyQt5.QtWidgets import QApplication + from qtpy.QtWidgets import QApplication app = QApplication(sys.argv) widget = MachineLog() widget.show() diff --git a/lib/python/qtvcp/widgets/macro_widget.py b/lib/python/qtvcp/widgets/macro_widget.py index 424f9122dcf..f0798cb1987 100644 --- a/lib/python/qtvcp/widgets/macro_widget.py +++ b/lib/python/qtvcp/widgets/macro_widget.py @@ -17,8 +17,8 @@ import os -from PyQt5 import QtWidgets, QtCore, QtGui -from PyQt5.QtWidgets import qApp +from qtpy import QtWidgets, QtCore, QtGui +from qtpy.QtWidgets import qApp from qtvcp.widgets.widget_baseclass import _HalWidgetBase from qtvcp.widgets.entry_widget import TouchInterface from qtvcp.core import Status, Action, Info @@ -39,7 +39,7 @@ if not INFO.LINUXCNC_IS_RUNNING: LOG.setLevel(logger.DEBUG) # One of DEBUG, INFO, WARNING, ERROR, CRITICAL try: - from PyQt5 import QtSvg + from qtpy import QtSvg except: LOG.critical("Qtvcp error with macro_widget - is package python3-pyqt5.qtsvg installed?") diff --git a/lib/python/qtvcp/widgets/mdi_history.py b/lib/python/qtvcp/widgets/mdi_history.py index 94102a8c3d7..bb22d43f692 100644 --- a/lib/python/qtvcp/widgets/mdi_history.py +++ b/lib/python/qtvcp/widgets/mdi_history.py @@ -15,9 +15,9 @@ ############################################################################### import os -from PyQt5.QtWidgets import QWidget, QVBoxLayout, QListView -from PyQt5.QtCore import pyqtProperty, QSize, QModelIndex, QItemSelectionModel, QItemSelection, QPoint -from PyQt5.QtGui import QStandardItemModel, QStandardItem +from qtpy.QtWidgets import QWidget, QVBoxLayout, QListView +from qtpy.QtCore import Property, QSize, QModelIndex, QItemSelectionModel, QItemSelection, QPoint +from qtpy.QtGui import QStandardItemModel, QStandardItem from qtvcp.widgets.widget_baseclass import _HalWidgetBase from qtvcp.widgets.mdi_line import MDILine @@ -161,7 +161,7 @@ def line_down(self): ######################################################################### # This is how designer can interact with our widget properties. - # designer will show the pyqtProperty properties in the editor + # designer will show the Property properties in the editor # it will use the get set and reset calls to do those actions ######################################################################### @@ -173,13 +173,13 @@ def reset_soft_keyboard(self): self.MDILine.soft_keyboard = False # designer will show these properties in this order: - soft_keyboard_option = pyqtProperty(bool, get_soft_keyboard, set_soft_keyboard, reset_soft_keyboard) + soft_keyboard_option = Property(bool, get_soft_keyboard, set_soft_keyboard, reset_soft_keyboard) if __name__ == "__main__": - from PyQt5.QtWidgets import * - from PyQt5.QtCore import * - from PyQt5.QtGui import * + from qtpy.QtWidgets import * + from qtpy.QtCore import * + from qtpy.QtGui import * import sys app = QApplication(sys.argv) diff --git a/lib/python/qtvcp/widgets/mdi_line.py b/lib/python/qtvcp/widgets/mdi_line.py index ea15c505d79..a9795529eb4 100644 --- a/lib/python/qtvcp/widgets/mdi_line.py +++ b/lib/python/qtvcp/widgets/mdi_line.py @@ -22,8 +22,8 @@ import subprocess -from PyQt5.QtWidgets import QLineEdit, QApplication -from PyQt5.QtCore import Qt, QEvent, pyqtProperty +from qtpy.QtWidgets import QLineEdit, QApplication +from qtpy.QtCore import Qt, QEvent, Property from qtvcp.core import Status, Action, Info from qtvcp.widgets.entry_widget import SoftInputWidget @@ -312,7 +312,7 @@ def return_value(self, w, message): ######################################################################### # This is how designer can interact with our widget properties. - # designer will show the pyqtProperty properties in the editor + # designer will show the Property properties in the editor # it will use the get set and reset calls to do those actions ######################################################################### @@ -324,7 +324,7 @@ def reset_soft_keyboard(self): self.soft_keyboard = False # designer will show these properties in this order: - soft_keyboard_option = pyqtProperty(bool, get_soft_keyboard, set_soft_keyboard, reset_soft_keyboard) + soft_keyboard_option = Property(bool, get_soft_keyboard, set_soft_keyboard, reset_soft_keyboard) def set_dialog_keyboard(self, data): self.dialog_keyboard = data @@ -334,12 +334,12 @@ def reset_dialog_keyboard(self): self.dialog_keyboard = False # designer will show these properties in this order: - dialog_keyboard_option = pyqtProperty(bool, get_dialog_keyboard, set_dialog_keyboard, reset_dialog_keyboard) + dialog_keyboard_option = Property(bool, get_dialog_keyboard, set_dialog_keyboard, reset_dialog_keyboard) # for testing without editor: def main(): import sys - from PyQt5.QtWidgets import QApplication + from qtpy.QtWidgets import QApplication app = QApplication(sys.argv) widget = MDILine() widget.show() diff --git a/lib/python/qtvcp/widgets/mdi_touchy.py b/lib/python/qtvcp/widgets/mdi_touchy.py index 382ad50336c..70fc9c453fe 100644 --- a/lib/python/qtvcp/widgets/mdi_touchy.py +++ b/lib/python/qtvcp/widgets/mdi_touchy.py @@ -17,7 +17,7 @@ import os -from PyQt5 import QtCore, QtWidgets, uic +from qtpy import QtCore, QtWidgets, uic from qtvcp.widgets.widget_baseclass import _HalWidgetBase from qtvcp.core import Status, Action, Info, Path @@ -391,9 +391,9 @@ def __setitem__(self, item, value): # Testing #################################### if __name__ == "__main__": - from PyQt5.QtWidgets import * - from PyQt5.QtCore import * - from PyQt5.QtGui import * + from qtpy.QtWidgets import * + from qtpy.QtCore import * + from qtpy.QtGui import * import sys app = QtWidgets.QApplication(sys.argv) diff --git a/lib/python/qtvcp/widgets/nurbs_editor.py b/lib/python/qtvcp/widgets/nurbs_editor.py index da2d299d507..adad7a8ad45 100644 --- a/lib/python/qtvcp/widgets/nurbs_editor.py +++ b/lib/python/qtvcp/widgets/nurbs_editor.py @@ -42,9 +42,9 @@ import os import sys import traceback -from PyQt5 import uic -from PyQt5.QtCore import pyqtSlot, QFile, QTextStream -from PyQt5.QtWidgets import (QApplication, QDialog) +from qtpy import uic +from qtpy.QtCore import Slot, QFile, QTextStream +from qtpy.QtWidgets import (QApplication, QDialog) import gcode from qt5_graphics import Lcnc_3dGraphics @@ -250,7 +250,7 @@ def load_dialog(self): self.graphics.set_current_view() #self.activateWindow() - @pyqtSlot() + @Slot() def on_makeButton_clicked(self): print('make') file = QFile(self.workpath) @@ -264,12 +264,12 @@ def on_makeButton_clicked(self): gcode = str(gcode, encoding='utf8') self.gcodeText.setPlainText(gcode) - @pyqtSlot() + @Slot() def on_applyButton_clicked(self): self.finalizeGcode() ACTION.OPEN_PROGRAM(self.workpath) - @pyqtSlot() + @Slot() def on_closeButton_clicked(self): self.close() diff --git a/lib/python/qtvcp/widgets/offset_tool_button.py b/lib/python/qtvcp/widgets/offset_tool_button.py index c4dd7de2f07..9aa33991017 100644 --- a/lib/python/qtvcp/widgets/offset_tool_button.py +++ b/lib/python/qtvcp/widgets/offset_tool_button.py @@ -14,9 +14,9 @@ # GNU General Public License for more details. ############################################################################### -from PyQt5.QtWidgets import QToolButton, QMenu, QAction -from PyQt5.QtCore import pyqtProperty -from PyQt5.QtGui import QIcon +from qtpy.QtWidgets import QToolButton, QMenu, QAction +from qtpy.QtCore import Property +from qtpy.QtGui import QIcon from qtvcp.widgets.widget_baseclass import _HalWidgetBase from qtvcp.core import Status, Action, Info @@ -169,7 +169,7 @@ def _switch_units(self, widget, data): ######################################################################### # This is how designer can interact with our widget properties. - # designer will show the pyqtProperty properties in the editor + # designer will show the Property properties in the editor # it will use the get set and reset calls to do those actions # ######################################################################## @@ -181,7 +181,7 @@ def get_axis(self): return self._axis def reset_axis(self): self._axis = '' - axis_letter = pyqtProperty(str, get_axis, set_axis, reset_axis) + axis_letter = Property(str, get_axis, set_axis, reset_axis) def set_dialog_code(self, data): @@ -190,7 +190,7 @@ def get_dialog_code(self): return self.dialog_code def reset_dialog_code(self): self.dialog_code = 'CALCULATOR' - dialog_code_string = pyqtProperty(str, get_dialog_code, set_dialog_code, reset_dialog_code) + dialog_code_string = Property(str, get_dialog_code, set_dialog_code, reset_dialog_code) def __getitem__(self, item): return getattr(self, item) @@ -200,7 +200,7 @@ def __setitem__(self, item, value): # for testing without editor: def main(): import sys - from PyQt5.QtWidgets import QApplication + from qtpy.QtWidgets import QApplication app = QApplication(sys.argv) widget = OffsetToolButton() widget.show() diff --git a/lib/python/qtvcp/widgets/operator_value_line.py b/lib/python/qtvcp/widgets/operator_value_line.py index f1eafb0beb9..eddf6e10ab6 100644 --- a/lib/python/qtvcp/widgets/operator_value_line.py +++ b/lib/python/qtvcp/widgets/operator_value_line.py @@ -23,8 +23,8 @@ import subprocess -from PyQt5.QtWidgets import QLineEdit, QApplication -from PyQt5.QtCore import Qt, QEvent, pyqtProperty +from qtpy.QtWidgets import QLineEdit, QApplication +from qtpy.QtCore import Qt, QEvent, Property from qtvcp.core import Status, Action, Info from qtvcp.widgets.entry_widget import SoftInputWidget @@ -130,7 +130,7 @@ def issue_mdi(self): ######################################################################### # This is how designer can interact with our widget properties. - # designer will show the pyqtProperty properties in the editor + # designer will show the Property properties in the editor # it will use the get set and reset calls to do those actions ######################################################################### @@ -147,7 +147,7 @@ def get_issue_mdi_on_submit(self): def reset_issue_mdi_on_submit(self): self.issue_mdi_on_submit = False - issue_mdi_on_submit_option = pyqtProperty(bool, get_issue_mdi_on_submit, set_issue_mdi_on_submit, reset_issue_mdi_on_submit) + issue_mdi_on_submit_option = Property(bool, get_issue_mdi_on_submit, set_issue_mdi_on_submit, reset_issue_mdi_on_submit) def set_issue_mdi_on_return(self, data): self.issue_mdi_on_return = data @@ -156,7 +156,7 @@ def get_issue_mdi_on_return(self): def reset_issue_mdi_on_return(self): self.issue_mdi_on_return = False - issue_mdi_on_return_option = pyqtProperty(bool, get_issue_mdi_on_return, set_issue_mdi_on_return, reset_issue_mdi_on_return) + issue_mdi_on_return_option = Property(bool, get_issue_mdi_on_return, set_issue_mdi_on_return, reset_issue_mdi_on_return) def set_mdi_command_format(self, data): self.mdi_command_format = data @@ -165,7 +165,7 @@ def get_mdi_command_format(self): def reset_mdi_command_format(self): self.mdi_command_format = False - mdi_command_format_option = pyqtProperty(str, get_mdi_command_format, set_mdi_command_format, reset_mdi_command_format) + mdi_command_format_option = Property(str, get_mdi_command_format, set_mdi_command_format, reset_mdi_command_format) def set_soft_keyboard(self, data): @@ -175,7 +175,7 @@ def get_soft_keyboard(self): def reset_soft_keyboard(self): self.soft_keyboard = False - soft_keyboard_option = pyqtProperty(bool, get_soft_keyboard, set_soft_keyboard, reset_soft_keyboard) + soft_keyboard_option = Property(bool, get_soft_keyboard, set_soft_keyboard, reset_soft_keyboard) def set_dialog_keyboard(self, data): self.dialog_keyboard = data @@ -184,7 +184,7 @@ def get_dialog_keyboard(self): def reset_dialog_keyboard(self): self.dialog_keyboard = False - dialog_keyboard_option = pyqtProperty(bool, get_dialog_keyboard, set_dialog_keyboard, reset_dialog_keyboard) + dialog_keyboard_option = Property(bool, get_dialog_keyboard, set_dialog_keyboard, reset_dialog_keyboard) def set_dialog_code(self, data): self.dialog_code = data @@ -193,7 +193,7 @@ def get_dialog_code(self): def reset_dialog_code(self): self.dialog_code = False - dialog_code_option = pyqtProperty(str, get_dialog_code, set_dialog_code, reset_dialog_code) + dialog_code_option = Property(str, get_dialog_code, set_dialog_code, reset_dialog_code) def set_pending_value(self, data): self.pending_value = data @@ -202,13 +202,13 @@ def get_pending_value(self): def reset_pending_value(self): self.pending_value = False - isPendingValue = pyqtProperty(bool, get_pending_value, set_pending_value, reset_pending_value) + isPendingValue = Property(bool, get_pending_value, set_pending_value, reset_pending_value) # for testing without editor: def main(): import sys - from PyQt5.QtWidgets import QApplication + from qtpy.QtWidgets import QApplication app = QApplication(sys.argv) widget = OperatorValueLine() widget.show() diff --git a/lib/python/qtvcp/widgets/origin_offsetview.py b/lib/python/qtvcp/widgets/origin_offsetview.py index 1a4d10f5309..13a0ea3c183 100644 --- a/lib/python/qtvcp/widgets/origin_offsetview.py +++ b/lib/python/qtvcp/widgets/origin_offsetview.py @@ -18,9 +18,9 @@ import os import locale -from PyQt5.QtCore import Qt, QAbstractTableModel, QVariant, pyqtProperty, pyqtSlot -from PyQt5.QtGui import QColor -from PyQt5.QtWidgets import QTableView, QAbstractItemView, qApp +from qtpy.QtCore import Qt, QAbstractTableModel, QVariant, Property, Slot +from qtpy.QtGui import QColor +from qtpy.QtWidgets import QTableView, QAbstractItemView, qApp from qtvcp.widgets.widget_baseclass import _HalWidgetBase from qtvcp.core import Status, Action, Info @@ -439,12 +439,12 @@ def periodic_check(self, w): return True # moves the selection up - @pyqtSlot() + @Slot() def up(self): self.setCurrentIndex(self.moveCursor(QAbstractItemView.CursorAction.MoveUp,Qt.NoModifier)) # moves the selection down - @pyqtSlot() + @Slot() def down(self): self.setCurrentIndex(self.moveCursor(QAbstractItemView.CursorAction.MoveDown,Qt.NoModifier)) @@ -456,7 +456,7 @@ def right(self): ######################################################################### # This is how designer can interact with our widget properties. - # designer will show the pyqtProperty properties in the editor + # designer will show the Property properties in the editor # it will use the get set and reset calls to do those actions # ######################################################################## @@ -467,7 +467,7 @@ def get_dialog_code(self): return self.dialog_code def reset_dialog_code(self): self.dialog_code = 'CALCULATOR' - dialog_code_string = pyqtProperty(str, get_dialog_code, set_dialog_code, reset_dialog_code) + dialog_code_string = Property(str, get_dialog_code, set_dialog_code, reset_dialog_code) def set_keyboard_code(self, data): self.text_dialog_code = data @@ -475,7 +475,7 @@ def get_keyboard_code(self): return self.text_dialog_code def reset_keyboard_code(self): self.text_dialog_code = 'KEYBOARD' - text_dialog_code_string = pyqtProperty(str, get_keyboard_code, set_keyboard_code, reset_keyboard_code) + text_dialog_code_string = Property(str, get_keyboard_code, set_keyboard_code, reset_keyboard_code) def setmetrictemplate(self, data): self.metric_text_template = data @@ -483,7 +483,7 @@ def getmetrictemplate(self): return self.metric_text_template def resetmetrictemplate(self): self.metric_text_template = '%10.3f' - metric_template = pyqtProperty(str, getmetrictemplate, setmetrictemplate, resetmetrictemplate) + metric_template = Property(str, getmetrictemplate, setmetrictemplate, resetmetrictemplate) def setimperialtexttemplate(self, data): self.imperial_text_template = data @@ -491,14 +491,14 @@ def getimperialtexttemplate(self): return self.imperial_text_template def resetimperialtexttemplate(self): self.imperial_text_template = '%9.4f' - imperial_template = pyqtProperty(str, getimperialtexttemplate, setimperialtexttemplate, resetimperialtexttemplate) + imperial_template = Property(str, getimperialtexttemplate, setimperialtexttemplate, resetimperialtexttemplate) def getColorHighlight(self): return QColor(self.tablemodel._highlightcolor) def setColorHighlight(self, value): self.tablemodel._highlightcolor = value.name() #self.tablemodel.layoutChanged.emit() - styleColorHighlight = pyqtProperty(QColor, getColorHighlight, setColorHighlight) + styleColorHighlight = Property(QColor, getColorHighlight, setColorHighlight) ######################################### # custom model @@ -586,7 +586,7 @@ def headerData(self, col, orientation, role): return QVariant() if __name__ == "__main__": - from PyQt5.QtWidgets import QApplication + from qtpy.QtWidgets import QApplication app = QApplication([]) w = OriginOffsetView() w.PREFS_ = None diff --git a/lib/python/qtvcp/widgets/overlay_widget.py b/lib/python/qtvcp/widgets/overlay_widget.py index 2d903105dcd..2aae723ff37 100644 --- a/lib/python/qtvcp/widgets/overlay_widget.py +++ b/lib/python/qtvcp/widgets/overlay_widget.py @@ -16,11 +16,11 @@ import os -from PyQt5.QtWidgets import (QWidget, QLabel, QHBoxLayout, +from qtpy.QtWidgets import (QWidget, QLabel, QHBoxLayout, QVBoxLayout, QPushButton, QDialog, QProgressBar) -from PyQt5.QtCore import (Qt, QEvent, pyqtSlot, pyqtProperty, QChildEvent, +from qtpy.QtCore import (Qt, QEvent, Slot, Property, QChildEvent, ) -from PyQt5.QtGui import QColor, QImage, QResizeEvent, QPainter, QMoveEvent +from qtpy.QtGui import QColor, QImage, QResizeEvent, QPainter, QMoveEvent from qtvcp.widgets.widget_baseclass import _HalWidgetBase from qtvcp.core import Status @@ -298,11 +298,11 @@ def cancelChecked(self): ######################################################################### # This is how designer can interact with our widget properties. - # designer will show the pyqtProperty properties in the editor + # designer will show the Property properties in the editor # it will use the get set and reset calls to do those actions ######################################################################## - @pyqtSlot(bool) + @Slot(bool) def setState(self, value): self._state = value if value: @@ -316,7 +316,7 @@ def resetState(self): def getOverayColor(self): return self.bg_color - @pyqtSlot(QColor) + @Slot(QColor) def setOverayColor(self, value): self.bg_color = value def resetOverayColor(self, value): @@ -371,13 +371,13 @@ def getimage_path(self): def resetimage_path(self): self._image_path = False - overlay_color = pyqtProperty(QColor, getOverayColor, setOverayColor, resetOverayColor) - state = pyqtProperty(bool, getState, setState, resetState) - show_text = pyqtProperty(bool, getShowText, setShowText, resetShowText) - show_image_option = pyqtProperty(bool, getshow_image, setshow_image, resetshow_image) - image_transparency = pyqtProperty(float, get_image_transp, set_image_transp, reset_image_transp) - show_buttons_option = pyqtProperty(bool, getshow_buttons, setshow_buttons, resetshow_buttons) - image_path = pyqtProperty(str, getimage_path, setimage_path, resetimage_path) + overlay_color = Property(QColor, getOverayColor, setOverayColor, resetOverayColor) + state = Property(bool, getState, setState, resetState) + show_text = Property(bool, getShowText, setShowText, resetShowText) + show_image_option = Property(bool, getshow_image, setshow_image, resetshow_image) + image_transparency = Property(float, get_image_transp, set_image_transp, reset_image_transp) + show_buttons_option = Property(bool, getshow_buttons, setshow_buttons, resetshow_buttons) + image_path = Property(str, getimage_path, setimage_path, resetimage_path) ################# @@ -385,8 +385,8 @@ def resetimage_path(self): ################# def main(): import sys - from PyQt5.QtWidgets import QWidget, QApplication - from PyQt5.QtCore import QTimer + from qtpy.QtWidgets import QWidget, QApplication + from qtpy.QtCore import QTimer app = QApplication(sys.argv) w = QWidget() diff --git a/lib/python/qtvcp/widgets/probe_subprog.py b/lib/python/qtvcp/widgets/probe_subprog.py index bb53223db8b..0559a6fa082 100644 --- a/lib/python/qtvcp/widgets/probe_subprog.py +++ b/lib/python/qtvcp/widgets/probe_subprog.py @@ -18,7 +18,7 @@ import time import json -from PyQt5.QtCore import QObject +from qtpy.QtCore import QObject from qtvcp.core import Status, Action, Info from qtvcp.widgets.probe_routines import ProbeRoutines diff --git a/lib/python/qtvcp/widgets/radio_axis_selector.py b/lib/python/qtvcp/widgets/radio_axis_selector.py index 3fd3525a140..916217d4194 100644 --- a/lib/python/qtvcp/widgets/radio_axis_selector.py +++ b/lib/python/qtvcp/widgets/radio_axis_selector.py @@ -1,5 +1,5 @@ #!/usr/bin/env python3 -from PyQt5 import QtCore, QtWidgets +from qtpy import QtCore, QtWidgets from qtvcp.widgets.widget_baseclass import _HalWidgetBase from qtvcp.core import Status, Action @@ -56,13 +56,13 @@ def getJoint(self): def resetJoint(self): self.joint = -1 - axis_selection = QtCore.pyqtProperty(str, getAxis, setAxis, resetAxis) - joint_selection = QtCore.pyqtProperty(int, getJoint, setJoint, resetJoint) + axis_selection = QtCore.Property(str, getAxis, setAxis, resetAxis) + joint_selection = QtCore.Property(int, getJoint, setJoint, resetJoint) # for testing without editor: def main(): import sys - from PyQt5.QtWidgets import QApplication + from qtpy.QtWidgets import QApplication app = QApplication(sys.argv) widget = QtWidgets.QWidget() layout = QtWidgets.QHBoxLayout() diff --git a/lib/python/qtvcp/widgets/richtext_selector.py b/lib/python/qtvcp/widgets/richtext_selector.py index 0cf52951018..7b817846605 100644 --- a/lib/python/qtvcp/widgets/richtext_selector.py +++ b/lib/python/qtvcp/widgets/richtext_selector.py @@ -1,8 +1,8 @@ #!/usr/bin/env python3 -from PyQt5.QtGui import * -from PyQt5.QtWidgets import * -from PyQt5.QtCore import * -from PyQt5.QtPrintSupport import * +from qtpy.QtGui import * +from qtpy.QtWidgets import * +from qtpy.QtCore import * +from qtpy.QtPrintSupport import * from qtvcp.core import Info, Path diff --git a/lib/python/qtvcp/widgets/round_gauge.py b/lib/python/qtvcp/widgets/round_gauge.py index 1f277c9f0fd..57f7fc25cbf 100644 --- a/lib/python/qtvcp/widgets/round_gauge.py +++ b/lib/python/qtvcp/widgets/round_gauge.py @@ -1,9 +1,9 @@ #!/usr/bin/env python3 import sys import math -from PyQt5 import QtCore, QtWidgets -from PyQt5.QtCore import Qt, QPoint, QPointF, QLine, QRect, QSize, pyqtSlot, pyqtProperty -from PyQt5.QtGui import QPainter, QBrush, QPen, QFont, QColor, QRadialGradient +from qtpy import QtCore, QtWidgets +from qtpy.QtCore import Qt, QPoint, QPointF, QLine, QRect, QSize, Slot, Property +from qtpy.QtGui import QPainter, QBrush, QPen, QFont, QColor, QRadialGradient from qtvcp.widgets.widget_baseclass import _HalWidgetBase, hal class Gauge(QtWidgets.QWidget, _HalWidgetBase): @@ -181,8 +181,8 @@ def draw_readout(self, qp, event, w): qp.setFont(QFont('Lato Heavy', self._label_font_size)) qp.drawText(rect, Qt.AlignCenter, text) - @pyqtSlot(float) - @pyqtSlot(int) + @Slot(float) + @Slot(int) def update_value(self, value): if value != self.value: self.value = int(value) @@ -200,7 +200,7 @@ def set_setpoint(self, value): self._setpoint = QPointF(x, y) self.update() - @pyqtSlot(int) + @Slot(int) def set_threshold(self, value): if value > self._max_value: self._threshold = self._max_value @@ -216,7 +216,7 @@ def get_threshold(self): def reset_threshold(self): self._threshold = 50 - @pyqtSlot(int) + @Slot(int) def set_max_value(self, value): self._max_value = value @@ -226,7 +226,7 @@ def get_max_value(self): def reset_max_value(self): self._max_value = 100 - @pyqtSlot(int) + @Slot(int) def set_max_reading(self, value): self._max_reading = value self.update() @@ -237,7 +237,7 @@ def get_max_reading(self): def reset_max_reading(self): self._max_reading = 100 - @pyqtSlot(int) + @Slot(int) def set_num_ticks(self, value): # cannot allow value <= 1 or there will be division by 0 errors self._num_ticks = value if value > 1 else 2 @@ -250,7 +250,7 @@ def get_num_ticks(self): def reset_num_ticks(self): self._num_ticks = 11 - @pyqtSlot(str) + @Slot(str) def set_label(self, label): self._gauge_label = label self.update() @@ -261,7 +261,7 @@ def get_label(self): def reset_label(self): self._gauge_label = "GAUGE" - @pyqtSlot(QColor) + @Slot(QColor) def set_base_gradient_color(self, color): self._base_gradient_color = color self.update() @@ -273,7 +273,7 @@ def reset_base_gradient_color(self): self._base_gradient_color = QColor(180, 180, 180) self.update() - @pyqtSlot(QColor) + @Slot(QColor) def set_base_color(self, color): self._base_color = color self.update() @@ -285,7 +285,7 @@ def reset_base_color(self): self._base_color = QColor(40, 40, 40) self.update() - @pyqtSlot(QColor) + @Slot(QColor) def set_center_gradient_color(self, color): self._center_gradient_color = color self.update() @@ -297,7 +297,7 @@ def reset_center_gradient_color(self): self._center_gradient_color = QColor("gray") self.update() - @pyqtSlot(QColor) + @Slot(QColor) def set_center_color(self, color): self._center_color = color self.update() @@ -309,7 +309,7 @@ def reset_center_color(self): self._center_color = QColor("#404040") self.update() - @pyqtSlot(QColor) + @Slot(QColor) def set_zone2_color(self, color): self._zone2_color = color self.update() @@ -320,7 +320,7 @@ def get_zone2_color(self): def reset_zone2_color(self): self._zone2_color = QColor("red") - @pyqtSlot(QColor) + @Slot(QColor) def set_zone1_color(self, color): self._zone1_color = color self.update() @@ -331,7 +331,7 @@ def get_zone1_color(self): def reset_zone1_color(self): self._zone1_color = QColor("green") - @pyqtSlot(QColor) + @Slot(QColor) def set_zone2_color(self, color): self._zone2_color = color self.update() @@ -342,7 +342,7 @@ def get_zone2_color(self): def reset_zone2_color(self): self._zone2_color = QColor("red") - @pyqtSlot(QColor) + @Slot(QColor) def set_bezel_color(self, color): self._bezel_color = color self.update() @@ -365,7 +365,7 @@ def get_halpin_option(self): def reset_halpin_option(self): self._halpin_option = True - @pyqtSlot(int) + @Slot(int) def set_bezel_width(self, value): self._bezel_width = value self.update() @@ -389,27 +389,27 @@ def get_halpin_option(self): def reset_halpin_option(self): self._halpin_option = True - halpin_option = pyqtProperty(bool, get_halpin_option, set_halpin_option, reset_halpin_option) - threshold = pyqtProperty(int, get_threshold, set_threshold, reset_threshold) - max_value = pyqtProperty(int, get_max_value, set_max_value, reset_max_value) - max_reading = pyqtProperty(int, get_max_reading, set_max_reading, reset_max_reading) - num_ticks = pyqtProperty(int, get_num_ticks, set_num_ticks, reset_num_ticks) - gauge_label = pyqtProperty(str, get_label, set_label, reset_label) - base_gradient_color = pyqtProperty(QColor, get_base_gradient_color, set_base_gradient_color, reset_base_gradient_color) - base_color = pyqtProperty(QColor, get_base_color, set_base_color, reset_base_color) - center_gradient_color = pyqtProperty(QColor, get_center_gradient_color, set_center_gradient_color, reset_center_gradient_color) - center_color = pyqtProperty(QColor, get_center_color, set_center_color, reset_center_color) - zone1_color = pyqtProperty(QColor, get_zone1_color, set_zone1_color, reset_zone1_color) - zone2_color = pyqtProperty(QColor, get_zone2_color, set_zone2_color, reset_zone2_color) - bezel_color = pyqtProperty(QColor, get_bezel_color, set_bezel_color, reset_bezel_color) - bezel_width = pyqtProperty(int, get_bezel_width, set_bezel_width, reset_bezel_width) + halpin_option = Property(bool, get_halpin_option, set_halpin_option, reset_halpin_option) + threshold = Property(int, get_threshold, set_threshold, reset_threshold) + max_value = Property(int, get_max_value, set_max_value, reset_max_value) + max_reading = Property(int, get_max_reading, set_max_reading, reset_max_reading) + num_ticks = Property(int, get_num_ticks, set_num_ticks, reset_num_ticks) + gauge_label = Property(str, get_label, set_label, reset_label) + base_gradient_color = Property(QColor, get_base_gradient_color, set_base_gradient_color, reset_base_gradient_color) + base_color = Property(QColor, get_base_color, set_base_color, reset_base_color) + center_gradient_color = Property(QColor, get_center_gradient_color, set_center_gradient_color, reset_center_gradient_color) + center_color = Property(QColor, get_center_color, set_center_color, reset_center_color) + zone1_color = Property(QColor, get_zone1_color, set_zone1_color, reset_zone1_color) + zone2_color = Property(QColor, get_zone2_color, set_zone2_color, reset_zone2_color) + bezel_color = Property(QColor, get_bezel_color, set_bezel_color, reset_bezel_color) + bezel_width = Property(int, get_bezel_width, set_bezel_width, reset_bezel_width) ############################# # Testing # ############################# if __name__ == "__main__": import sys - from PyQt5.QtWidgets import QSlider, QWidget, QVBoxLayout + from qtpy.QtWidgets import QSlider, QWidget, QVBoxLayout app = QtWidgets.QApplication(sys.argv) w = QWidget() w.setGeometry(100, 100, 400, 400) diff --git a/lib/python/qtvcp/widgets/round_progress.py b/lib/python/qtvcp/widgets/round_progress.py index 5437f5f9abe..0d6f4195928 100644 --- a/lib/python/qtvcp/widgets/round_progress.py +++ b/lib/python/qtvcp/widgets/round_progress.py @@ -1,8 +1,8 @@ -from PyQt5 import QtCore, QtGui, Qt -from PyQt5.QtGui import QColor -from PyQt5.QtCore import pyqtSlot -from PyQt5.QtWidgets import QWidget +from qtpy import QtCore, QtGui, Qt +from qtpy.QtGui import QColor +from qtpy.QtCore import Slot +from qtpy.QtWidgets import QWidget class RoundProgressBar(QWidget): @@ -62,8 +62,8 @@ def setMaximum(self, max): def sizeHint(self): return QtCore.QSize(100, 100) - @pyqtSlot(float) - @pyqtSlot(int) + @Slot(float) + @Slot(int) def setValue(self, val): if self.value != val: if val < self.min: @@ -291,7 +291,7 @@ def rebuildDataBrushIfNeeded(self): if __name__ == "__main__": import sys - from PyQt5.QtWidgets import QDial, QWidget, QHBoxLayout, QApplication + from qtpy.QtWidgets import QDial, QWidget, QHBoxLayout, QApplication app = QApplication(sys.argv) w = QWidget() diff --git a/lib/python/qtvcp/widgets/runFromLine_dialog.py b/lib/python/qtvcp/widgets/runFromLine_dialog.py index 651f65f33c2..016cfa64d5a 100644 --- a/lib/python/qtvcp/widgets/runFromLine_dialog.py +++ b/lib/python/qtvcp/widgets/runFromLine_dialog.py @@ -18,7 +18,7 @@ import sys import os -from PyQt5 import QtWidgets, uic +from qtpy import QtWidgets, uic from qtvcp.widgets.widget_baseclass import _HalWidgetBase from qtvcp.core import Status, Action, Info @@ -73,9 +73,9 @@ def __setitem__(self, item, value): # Testing #################################### if __name__ == "__main__": - from PyQt5.QtWidgets import * - from PyQt5.QtCore import * - from PyQt5.QtGui import * + from qtpy.QtWidgets import * + from qtpy.QtCore import * + from qtpy.QtGui import * app = QtWidgets.QApplication(sys.argv) w = RunFromLineDialog() diff --git a/lib/python/qtvcp/widgets/screen_options.py b/lib/python/qtvcp/widgets/screen_options.py index 9cf2904ec3e..dd132ce6e98 100644 --- a/lib/python/qtvcp/widgets/screen_options.py +++ b/lib/python/qtvcp/widgets/screen_options.py @@ -15,10 +15,10 @@ ############################################################################### import os -from PyQt5 import QtCore, QtWidgets, QtGui -from PyQt5.QtWidgets import (QGraphicsBlurEffect, +from qtpy import QtCore, QtWidgets, QtGui +from qtpy.QtWidgets import (QGraphicsBlurEffect, QGraphicsColorizeEffect) -from PyQt5.QtCore import QVariant +from qtpy.QtCore import QVariant import linuxcnc @@ -535,8 +535,8 @@ def init_about_dialog(self): w.aboutDialog_.setText(info) w.aboutDialog_.hal_init(HAL_NAME='aboutDialog') - @QtCore.pyqtSlot(bool) - @QtCore.pyqtSlot(int) + @QtCore.Slot(bool) + @QtCore.Slot(int) def showAboutDialog(self, value): self.QTVCP_INSTANCE_.aboutDialog_.showdialog() @@ -778,7 +778,7 @@ def effect(self, data, text, color): ######################################################################### # This is how designer can interact with our widget properties. - # designer will show the pyqtProperty properties in the editor + # designer will show the Property properties in the editor # it will use the get set and reset calls to do those actions # # _toggle_properties makes it so we can only select one option @@ -792,7 +792,7 @@ def _toggle_properties(self, picked): ######################################################################## # This is how designer can interact with our widget properties. - # designer will show the pyqtProperty properties in the editor + # designer will show the Property properties in the editor # it will use the get set and reset calls to do those actions ######################################################################## @@ -868,20 +868,20 @@ def get_receive_zmg(self): return self.add_receive_zmq # designer will show these properties in this order: - notify_option = QtCore.pyqtProperty(bool, get_notify, set_notify, reset_notify) - notify_max_messages = QtCore.pyqtProperty(int, get_max_messages, set_max_messages, reset_max_messages) + notify_option = QtCore.Property(bool, get_notify, set_notify, reset_notify) + notify_max_messages = QtCore.Property(int, get_max_messages, set_max_messages, reset_max_messages) - catch_close_option = QtCore.pyqtProperty(bool, get_close, set_close, reset_close) - close_overlay_color = QtCore.pyqtProperty(QtGui.QColor, getColor, setColor, resetColor) + catch_close_option = QtCore.Property(bool, get_close, set_close, reset_close) + close_overlay_color = QtCore.Property(QtGui.QColor, getColor, setColor, resetColor) - catch_errors_option = QtCore.pyqtProperty(bool, get_errors, set_errors, reset_errors) - play_sounds_option = QtCore.pyqtProperty(bool, get_play_sounds, set_play_sounds, reset_play_sounds) + catch_errors_option = QtCore.Property(bool, get_errors, set_errors, reset_errors) + play_sounds_option = QtCore.Property(bool, get_play_sounds, set_play_sounds, reset_play_sounds) - use_pref_file_option = QtCore.pyqtProperty(bool, get_use_pref_file, set_use_pref_file, reset_use_pref_file) - pref_filename_string = QtCore.pyqtProperty(str, get_pref_filename, set_pref_filename, reset_pref_filename) + use_pref_file_option = QtCore.Property(bool, get_use_pref_file, set_use_pref_file, reset_use_pref_file) + pref_filename_string = QtCore.Property(str, get_pref_filename, set_pref_filename, reset_pref_filename) - use_send_zmq_option = QtCore.pyqtProperty(bool, get_send_zmg, set_send_zmg) - use_receive_zmq_option = QtCore.pyqtProperty(bool, get_receive_zmg, set_receive_zmg) + use_send_zmq_option = QtCore.Property(bool, get_send_zmg, set_send_zmg) + use_receive_zmq_option = QtCore.Property(bool, get_receive_zmg, set_receive_zmg) # Embeddable program info ########################## def set_embed_prgm(self, data): @@ -890,12 +890,12 @@ def get_embed_prgm(self): return self.process_tabs def reset_embed_prgm(self): self.process_tabs = True - embedded_program_option = QtCore.pyqtProperty(bool, get_embed_prgm, set_embed_prgm, reset_embed_prgm) + embedded_program_option = QtCore.Property(bool, get_embed_prgm, set_embed_prgm, reset_embed_prgm) def set_default_tab(self, data): self._default_tab_name = data def get_default_tab(self): return self._default_tab_name - default_embed_tab = QtCore.pyqtProperty(str, get_default_tab, set_default_tab) + default_embed_tab = QtCore.Property(str, get_default_tab, set_default_tab) # Focus overlay #################################### @@ -905,7 +905,7 @@ def get_focusOverlay(self): return self.add_focus_overlay def reset_focusOverlay(self): self.add_focus_overlay = False - focusOverlay_option = QtCore.pyqtProperty(bool, get_focusOverlay, set_focusOverlay, reset_focusOverlay) + focusOverlay_option = QtCore.Property(bool, get_focusOverlay, set_focusOverlay, reset_focusOverlay) def set_focusEffect(self, data): self.add_focus_effect = data @@ -913,7 +913,7 @@ def get_focusEffect(self): return self.add_focus_effect def reset_focusEffect(self): self.add_focus_effect = False - focusEffect_option = QtCore.pyqtProperty(bool, get_focusEffect, set_focusEffect, reset_focusEffect) + focusEffect_option = QtCore.Property(bool, get_focusEffect, set_focusEffect, reset_focusEffect) def set_focusBlur(self, data): self.use_focus_blur = data @@ -923,7 +923,7 @@ def get_focusBlur(self): return self.use_focus_blur def reset_focusBlur(self): self.use_focus_blur = False - focusBlur_option = QtCore.pyqtProperty(bool, get_focusBlur, set_focusBlur, reset_focusBlur) + focusBlur_option = QtCore.Property(bool, get_focusBlur, set_focusBlur, reset_focusBlur) def set_blurList(self, data): self.__blurList = data @@ -931,7 +931,7 @@ def get_blurList(self): return self.__blurList def reset_blurList(self): self.__blurList = [] - focusBlurList = QtCore.pyqtProperty(QVariant.typeToName(QVariant.StringList), get_blurList, set_blurList, reset_blurList) + focusBlurList = QtCore.Property(QVariant.typeToName(QVariant.StringList), get_blurList, set_blurList, reset_blurList) def set_focusTint(self, data): self.use_focus_tint = data @@ -941,7 +941,7 @@ def get_focusTint(self): return self.use_focus_tint def reset_focusTint(self): self.use_focus_tint = False - focusTint_option = QtCore.pyqtProperty(bool, get_focusTint, set_focusTint, reset_focusTint) + focusTint_option = QtCore.Property(bool, get_focusTint, set_focusTint, reset_focusTint) def set_tintList(self, data): self.__tintList = data @@ -949,7 +949,7 @@ def get_tintList(self): return self.__tintList def reset_tintList(self): self.__tintList = [] - focusTintList = QtCore.pyqtProperty(QVariant.typeToName(QVariant.StringList), get_tintList, set_tintList, reset_tintList) + focusTintList = QtCore.Property(QVariant.typeToName(QVariant.StringList), get_tintList, set_tintList, reset_tintList) # Dialogs ########################################## @@ -959,12 +959,12 @@ def get_messageDialog(self): return self.add_message_dialog def reset_messageDialog(self): self.add_message_dialog = False - messageDialog_option = QtCore.pyqtProperty(bool, get_messageDialog, set_messageDialog, reset_messageDialog) + messageDialog_option = QtCore.Property(bool, get_messageDialog, set_messageDialog, reset_messageDialog) def get_messageDialogColor(self): return self._messageDialogColor def set_messageDialogColor(self, value): self._messageDialogColor = value - message_overlay_color = QtCore.pyqtProperty(QtGui.QColor, get_messageDialogColor, set_messageDialogColor) + message_overlay_color = QtCore.Property(QtGui.QColor, get_messageDialogColor, set_messageDialogColor) def set_closeDialog(self, data): self.add_close_dialog = data @@ -972,7 +972,7 @@ def get_closeDialog(self): return self.add_close_dialog def reset_closeDialog(self): self.add_close_dialog = False - closeDialog_option = QtCore.pyqtProperty(bool, get_closeDialog, set_closeDialog, reset_closeDialog) + closeDialog_option = QtCore.Property(bool, get_closeDialog, set_closeDialog, reset_closeDialog) def set_entryDialog(self, data): self.add_entry_dialog = data @@ -980,19 +980,19 @@ def get_entryDialog(self): return self.add_entry_dialog def reset_entryDialog(self): self.add_entry_dialog = False - entryDialog_option = QtCore.pyqtProperty(bool, get_entryDialog, set_entryDialog, reset_entryDialog) + entryDialog_option = QtCore.Property(bool, get_entryDialog, set_entryDialog, reset_entryDialog) def set_entryDialogSoftkey(self, data): self._entryDialogSoftkey = data def get_entryDialogSoftkey(self): return self._entryDialogSoftkey def reset_entryDialogSoftkey(self): self._entryDialogSoftkey = False - entryDialogSoftkey_option = QtCore.pyqtProperty(bool, get_entryDialogSoftkey, set_entryDialogSoftkey, reset_entryDialogSoftkey) + entryDialogSoftkey_option = QtCore.Property(bool, get_entryDialogSoftkey, set_entryDialogSoftkey, reset_entryDialogSoftkey) def get_entryDialogColor(self): return self._entryDialogColor def set_entryDialogColor(self, value): self._entryDialogColor = value - entry_overlay_color = QtCore.pyqtProperty(QtGui.QColor, get_entryDialogColor, set_entryDialogColor) + entry_overlay_color = QtCore.Property(QtGui.QColor, get_entryDialogColor, set_entryDialogColor) def set_toolDialog(self, data): self.add_tool_dialog = data @@ -1000,26 +1000,26 @@ def get_toolDialog(self): return self.add_tool_dialog def reset_toolDialog(self): self.add_tool_dialog = False - toolDialog_option = QtCore.pyqtProperty(bool, get_toolDialog, set_toolDialog, reset_toolDialog) + toolDialog_option = QtCore.Property(bool, get_toolDialog, set_toolDialog, reset_toolDialog) def get_toolDialogColor(self): return self._toolDialogColor def set_toolDialogColor(self, value): self._toolDialogColor = value - tool_overlay_color = QtCore.pyqtProperty(QtGui.QColor, get_toolDialogColor, set_toolDialogColor) + tool_overlay_color = QtCore.Property(QtGui.QColor, get_toolDialogColor, set_toolDialogColor) def setUseDesktopNotify(self, value): self._toolUseDesktopNotify = value def getUseDesktopNotify(self): return self._toolUseDesktopNotify def resetUseDesktopNotify(self): self._toolUseDesktopNotify = False - ToolUseDesktopNotify = QtCore.pyqtProperty(bool, getUseDesktopNotify, setUseDesktopNotify, resetUseDesktopNotify) + ToolUseDesktopNotify = QtCore.Property(bool, getUseDesktopNotify, setUseDesktopNotify, resetUseDesktopNotify) def setFrameless(self, value): self._toolFrameless = value def getFrameless(self): return self._toolFrameless def resetFrameless(self): self._toolFrameless = False - ToolFrameless = QtCore.pyqtProperty(bool, getFrameless, setFrameless, resetFrameless) + ToolFrameless = QtCore.Property(bool, getFrameless, setFrameless, resetFrameless) def set_fileDialog(self, data): self.add_file_dialog = data @@ -1027,12 +1027,12 @@ def get_fileDialog(self): return self.add_file_dialog def reset_fileDialog(self): self.add_file_dialog = False - fileDialog_option = QtCore.pyqtProperty(bool, get_fileDialog, set_fileDialog, reset_fileDialog) + fileDialog_option = QtCore.Property(bool, get_fileDialog, set_fileDialog, reset_fileDialog) def get_fileDialogColor(self): return self._fileDialogColor def set_fileDialogColor(self, value): self._fileDialogColor = value - file_overlay_color = QtCore.pyqtProperty(QtGui.QColor, get_fileDialogColor, set_fileDialogColor) + file_overlay_color = QtCore.Property(QtGui.QColor, get_fileDialogColor, set_fileDialogColor) def set_keyboardDialog(self, data): self.add_keyboard_dialog = data @@ -1040,12 +1040,12 @@ def get_keyboardDialog(self): return self.add_keyboard_dialog def reset_keyboardDialog(self): self.add_keyboard_dialog = False - keyboardDialog_option = QtCore.pyqtProperty(bool, get_keyboardDialog, set_keyboardDialog, reset_keyboardDialog) + keyboardDialog_option = QtCore.Property(bool, get_keyboardDialog, set_keyboardDialog, reset_keyboardDialog) def get_keyboardDialogColor(self): return self._keyboardDialogColor def set_keyboardDialogColor(self, value): self._keyboardDialogColor = value - keyboard_overlay_color = QtCore.pyqtProperty(QtGui.QColor, get_keyboardDialogColor, set_keyboardDialogColor) + keyboard_overlay_color = QtCore.Property(QtGui.QColor, get_keyboardDialogColor, set_keyboardDialogColor) def set_versaProbeDialog(self, data): self.add_versaprobe_dialog = data @@ -1053,12 +1053,12 @@ def get_versaProbeDialog(self): return self.add_versaprobe_dialog def reset_versaProbeDialog(self): self.add_versaprobe_dialog = False - versaProbeDialog_option = QtCore.pyqtProperty(bool, get_versaProbeDialog, set_versaProbeDialog, reset_versaProbeDialog) + versaProbeDialog_option = QtCore.Property(bool, get_versaProbeDialog, set_versaProbeDialog, reset_versaProbeDialog) def get_versaProbeDialogColor(self): return self._versaProbeDialogColor def set_versaProbeDialogColor(self, value): self._versaProbeDialogColor = value - versaProbe_overlay_color = QtCore.pyqtProperty(QtGui.QColor, get_versaProbeDialogColor, set_versaProbeDialogColor) + versaProbe_overlay_color = QtCore.Property(QtGui.QColor, get_versaProbeDialogColor, set_versaProbeDialogColor) def set_macroTabDialog(self, data): self.add_macrotab_dialog = data @@ -1066,12 +1066,12 @@ def get_macroTabDialog(self): return self.add_macrotab_dialog def reset_macroTabDialog(self): self.add_macrotab_dialog = False - macroTabDialog_option = QtCore.pyqtProperty(bool, get_macroTabDialog, set_macroTabDialog, reset_macroTabDialog) + macroTabDialog_option = QtCore.Property(bool, get_macroTabDialog, set_macroTabDialog, reset_macroTabDialog) def get_macroTabDialogColor(self): return self._macroTabDialogColor def set_macroTabDialogColor(self, value): self._macroTabDialogColor = value - macroTab_overlay_color = QtCore.pyqtProperty(QtGui.QColor, get_macroTabDialogColor, set_macroTabDialogColor) + macroTab_overlay_color = QtCore.Property(QtGui.QColor, get_macroTabDialogColor, set_macroTabDialogColor) def set_camViewDialog(self, data): self.add_camview_dialog = data @@ -1079,12 +1079,12 @@ def get_camViewDialog(self): return self.add_camview_dialog def reset_camViewDialog(self): self.add_camview_dialog = False - camViewDialog_option = QtCore.pyqtProperty(bool, get_camViewDialog, set_camViewDialog, reset_camViewDialog) + camViewDialog_option = QtCore.Property(bool, get_camViewDialog, set_camViewDialog, reset_camViewDialog) def get_camViewDialogColor(self): return self._camViewDialogColor def set_camViewDialogColor(self, value): self._camViewDialogColor = value - camView_overlay_color = QtCore.pyqtProperty(QtGui.QColor, get_camViewDialogColor, set_camViewDialogColor) + camView_overlay_color = QtCore.Property(QtGui.QColor, get_camViewDialogColor, set_camViewDialogColor) def set_toolChooserDialog(self, data): self.add_toolchooser_dialog = data @@ -1092,13 +1092,13 @@ def get_toolChooserDialog(self): return self.add_toolchooser_dialog def reset_toolChooserDialog(self): self.add_toolchooser_dialog = False - toolChooserDialog_option = QtCore.pyqtProperty(bool, get_toolChooserDialog, set_toolChooserDialog, reset_toolChooserDialog) + toolChooserDialog_option = QtCore.Property(bool, get_toolChooserDialog, set_toolChooserDialog, reset_toolChooserDialog) def get_toolChooserDialogColor(self): return self._toolChooserDialogColor def set_toolChooserDialogColor(self, value): self._toolChooserDialogColor = value - toolChooser_overlay_color = QtCore.pyqtProperty(QtGui.QColor, get_toolChooserDialogColor, set_toolChooserDialogColor) + toolChooser_overlay_color = QtCore.Property(QtGui.QColor, get_toolChooserDialogColor, set_toolChooserDialogColor) def set_toolOffsetDialog(self, data): self.add_tooloffset_dialog = data @@ -1106,12 +1106,12 @@ def get_toolOffsetDialog(self): return self.add_tooloffset_dialog def reset_toolOffsetDialog(self): self.add_tooloffset_dialog = False - toolOffsetDialog_option = QtCore.pyqtProperty(bool, get_toolOffsetDialog, set_toolOffsetDialog, reset_toolOffsetDialog) + toolOffsetDialog_option = QtCore.Property(bool, get_toolOffsetDialog, set_toolOffsetDialog, reset_toolOffsetDialog) def get_toolOffsetDialogColor(self): return self._toolOffsetDialogColor def set_toolOffsetDialogColor(self, value): self._toolOffsetDialogColor = value - toolOffset_overlay_color = QtCore.pyqtProperty(QtGui.QColor, get_toolOffsetDialogColor, set_toolOffsetDialogColor) + toolOffset_overlay_color = QtCore.Property(QtGui.QColor, get_toolOffsetDialogColor, set_toolOffsetDialogColor) def set_originOffsetDialog(self, data): self.add_originoffset_dialog = data @@ -1119,12 +1119,12 @@ def get_originOffsetDialog(self): return self.add_originoffset_dialog def reset_originOffsetDialog(self): self.add_originoffset_dialog = False - originOffsetDialog_option = QtCore.pyqtProperty(bool, get_originOffsetDialog, set_originOffsetDialog, reset_originOffsetDialog) + originOffsetDialog_option = QtCore.Property(bool, get_originOffsetDialog, set_originOffsetDialog, reset_originOffsetDialog) def get_originOffsetDialogColor(self): return self._originOffsetDialogColor def set_originOffsetDialogColor(self, value): self._originOffsetDialogColor = value - originOffset_overlay_color = QtCore.pyqtProperty(QtGui.QColor, get_originOffsetDialogColor, set_originOffsetDialogColor) + originOffset_overlay_color = QtCore.Property(QtGui.QColor, get_originOffsetDialogColor, set_originOffsetDialogColor) def set_calculatorDialog(self, data): self.add_calculator_dialog = data @@ -1132,12 +1132,12 @@ def get_calculatorDialog(self): return self.add_calculator_dialog def reset_calculatorDialog(self): self.add_calculator_dialog = False - calculatorDialog_option = QtCore.pyqtProperty(bool, get_calculatorDialog, set_calculatorDialog, reset_calculatorDialog) + calculatorDialog_option = QtCore.Property(bool, get_calculatorDialog, set_calculatorDialog, reset_calculatorDialog) def get_calculatorDialogColor(self): return self._calculatorDialogColor def set_calculatorDialogColor(self, value): self._calculatorDialogColor = value - calculator_overlay_color = QtCore.pyqtProperty(QtGui.QColor, get_calculatorDialogColor, set_calculatorDialogColor) + calculator_overlay_color = QtCore.Property(QtGui.QColor, get_calculatorDialogColor, set_calculatorDialogColor) def set_machineLogDialog(self, data): self.add_machinelog_dialog = data @@ -1145,12 +1145,12 @@ def get_machineLogDialog(self): return self.add_machinelog_dialog def reset_machineLogDialog(self): self.add_machinelog_dialog = False - machineLogDialog_option = QtCore.pyqtProperty(bool, get_machineLogDialog, set_machineLogDialog, reset_machineLogDialog) + machineLogDialog_option = QtCore.Property(bool, get_machineLogDialog, set_machineLogDialog, reset_machineLogDialog) def get_machineLogDialogColor(self): return self._machineLogDialogColor def set_machineLogDialogColor(self, value): self._machineLogDialogColor = value - machineLog_overlay_color = QtCore.pyqtProperty(QtGui.QColor, get_machineLogDialogColor, set_machineLogDialogColor) + machineLog_overlay_color = QtCore.Property(QtGui.QColor, get_machineLogDialogColor, set_machineLogDialogColor) def set_runFromLineDialog(self, data): self.add_runFromLine_dialog = data @@ -1158,72 +1158,72 @@ def get_runFromLineDialog(self): return self.add_runFromLine_dialog def reset_runFromLineDialog(self): self.add_runFromLine_dialog = False - runFromLineDialog_option = QtCore.pyqtProperty(bool, get_runFromLineDialog, set_runFromLineDialog, reset_runFromLineDialog) + runFromLineDialog_option = QtCore.Property(bool, get_runFromLineDialog, set_runFromLineDialog, reset_runFromLineDialog) def get_runFromLineDialogColor(self): return self._runFromLineDialogColor def set_runFromLineDialogColor(self, value): self._runFromLineDialogColor = value - runFromLine_overlay_color = QtCore.pyqtProperty(QtGui.QColor, get_runFromLineDialogColor, set_runFromLineDialogColor) + runFromLine_overlay_color = QtCore.Property(QtGui.QColor, get_runFromLineDialogColor, set_runFromLineDialogColor) def get_User1Color(self): return self._User1Color def set_User1Color(self, value): self._User1Color = value - user1Color = QtCore.pyqtProperty(QtGui.QColor, get_User1Color, set_User1Color) + user1Color = QtCore.Property(QtGui.QColor, get_User1Color, set_User1Color) def get_User2Color(self): return self._User2Color def set_User2Color(self, value): self._User2Color = value - user2Color = QtCore.pyqtProperty(QtGui.QColor, get_User2Color, set_User2Color) + user2Color = QtCore.Property(QtGui.QColor, get_User2Color, set_User2Color) def get_User3Color(self): return self._User3Color def set_User3Color(self, value): self._User3Color = value - user3Color = QtCore.pyqtProperty(QtGui.QColor, get_User3Color, set_User3Color) + user3Color = QtCore.Property(QtGui.QColor, get_User3Color, set_User3Color) def get_User4Color(self): return self._User4Color def set_User4Color(self, value): self._User4Color = value - user4Color = QtCore.pyqtProperty(QtGui.QColor, get_User4Color, set_User4Color) + user4Color = QtCore.Property(QtGui.QColor, get_User4Color, set_User4Color) def get_User5Color(self): return self._User5Color def set_User5Color(self, value): self._User5Color = value - user5Color = QtCore.pyqtProperty(QtGui.QColor, get_User5Color, set_User5Color) + user5Color = QtCore.Property(QtGui.QColor, get_User5Color, set_User5Color) def get_User6Color(self): return self._User6Color def set_User6Color(self, value): self._User6Color = value - user6Color = QtCore.pyqtProperty(QtGui.QColor, get_User6Color, set_User6Color) + user6Color = QtCore.Property(QtGui.QColor, get_User6Color, set_User6Color) def get_User7Color(self): return self._User7Color def set_User7Color(self, value): self._User7Color = value - user7Color = QtCore.pyqtProperty(QtGui.QColor, get_User7Color, set_User7Color) + user7Color = QtCore.Property(QtGui.QColor, get_User7Color, set_User7Color) def get_User8Color(self): return self._User8Color def set_User8Color(self, value): self._User8Color = value - user8Color = QtCore.pyqtProperty(QtGui.QColor, get_User8Color, set_User8Color) + user8Color = QtCore.Property(QtGui.QColor, get_User8Color, set_User8Color) def get_User9Color(self): return self._User9Color def set_User9Color(self, value): self._User9Color = value - user9Color = QtCore.pyqtProperty(QtGui.QColor, get_User9Color, set_User9Color) + user9Color = QtCore.Property(QtGui.QColor, get_User9Color, set_User9Color) def get_User10Color(self): return self._User10Color def set_User10Color(self, value): self._User10Color = value - user10Color = QtCore.pyqtProperty(QtGui.QColor, get_User10Color, set_User10Color) + user10Color = QtCore.Property(QtGui.QColor, get_User10Color, set_User10Color) def getHalCompName(self): return self._halBaseName @@ -1231,7 +1231,7 @@ def setHalCompName(self, value): self._halBaseName = value def resetHalCompName(self): self._halBaseName = '' - halCompBaseName = QtCore.pyqtProperty(str, getHalCompName, setHalCompName, resetHalCompName) + halCompBaseName = QtCore.Property(str, getHalCompName, setHalCompName, resetHalCompName) ############################## # required boiler code # diff --git a/lib/python/qtvcp/widgets/simple_widgets.py b/lib/python/qtvcp/widgets/simple_widgets.py index fb688286d9b..331110d9f2b 100644 --- a/lib/python/qtvcp/widgets/simple_widgets.py +++ b/lib/python/qtvcp/widgets/simple_widgets.py @@ -14,13 +14,13 @@ # GNU General Public License for more details. try: - from PyQt5.QtCore import Q_ENUM + from qtpy.QtCore import Q_ENUM except: # before qt5.10 - from PyQt5.QtCore import Q_ENUMS as Q_ENUM + from qtpy.QtCore import Q_ENUMS as Q_ENUM -from PyQt5 import QtCore, QtGui, QtWidgets -from PyQt5.QtCore import pyqtProperty, pyqtSlot +from qtpy import QtCore, QtGui, QtWidgets +from qtpy.QtCore import Property, Slot from qtvcp.widgets.widget_baseclass import (_HalWidgetBase, _HalToggleBase, _HalSensitiveBase, _HalScaleBase) from qtvcp.widgets.indicatorMixIn import IndicatedMixIn @@ -97,7 +97,7 @@ def updateFloatDisplay(self, data): ######################################################################### # This is how designer can interact with our widget properties. - # designer will show the pyqtProperty properties in the editor + # designer will show the Property properties in the editor # it will use the get set and reset calls to do those actions ######################################################################## @@ -150,11 +150,11 @@ def reset_floatTemplate(self): self._floatTemplate = '' # designer will show these properties in this order: - pin_name = QtCore.pyqtProperty(str, get_pin_name, set_pin_name, reset_pin_name) - bit_pin_type = QtCore.pyqtProperty(bool, get_bit_pin_type, set_bit_pin_type, reset_bit_pin_type) - s32_pin_type = QtCore.pyqtProperty(bool, get_s32_pin_type, set_s32_pin_type, reset_s32_pin_type) - float_pin_type = QtCore.pyqtProperty(bool, get_float_pin_type, set_float_pin_type, reset_float_pin_type) - floatTemplate = QtCore.pyqtProperty(str, get_floatTemplate, set_floatTemplate, reset_floatTemplate) + pin_name = QtCore.Property(str, get_pin_name, set_pin_name, reset_pin_name) + bit_pin_type = QtCore.Property(bool, get_bit_pin_type, set_bit_pin_type, reset_bit_pin_type) + s32_pin_type = QtCore.Property(bool, get_s32_pin_type, set_s32_pin_type, reset_s32_pin_type) + float_pin_type = QtCore.Property(bool, get_float_pin_type, set_float_pin_type, reset_float_pin_type) + floatTemplate = QtCore.Property(str, get_floatTemplate, set_floatTemplate, reset_floatTemplate) ############################## # required class boiler code # @@ -202,7 +202,7 @@ def get_pin_name(self): return self._pin_name_ def reset_pin_name(self): self._pin_name_ = '' - pin_name = QtCore.pyqtProperty(str, get_pin_name, set_pin_name, reset_pin_name) + pin_name = QtCore.Property(str, get_pin_name, set_pin_name, reset_pin_name) class Dial(QtWidgets.QDial, _HalWidgetBase): def __init__(self, parent=None): @@ -262,11 +262,11 @@ def get_pin_name(self): return self._pin_name_ def reset_pin_name(self): self._pin_name_ = '' - pin_name = QtCore.pyqtProperty(str, get_pin_name, set_pin_name, reset_pin_name) + pin_name = QtCore.Property(str, get_pin_name, set_pin_name, reset_pin_name) class DoubleScale(QtWidgets.QDoubleSpinBox, _HalScaleBase): - intOutput = QtCore.pyqtSignal(int) - floatOutput = QtCore.pyqtSignal(float) + intOutput = QtCore.Signal(int) + floatOutput = QtCore.Signal(float) def __init__(self, parent=None): super(DoubleScale, self).__init__(parent) @@ -274,8 +274,8 @@ def __init__(self, parent=None): # one can connect signals to this widget to # feed an input that gets scaled by this widget. - @QtCore.pyqtSlot(float) - @QtCore.pyqtSlot(int) + @QtCore.Slot(float) + @QtCore.Slot(int) def setInput(self, data): self.input = data self.valueChanged.emit(self.value()) @@ -293,7 +293,7 @@ def get_pin_name(self): return self._pin_name_ def reset_pin_name(self): self._pin_name_ = '' - pin_name = QtCore.pyqtProperty(str, get_pin_name, set_pin_name, reset_pin_name) + pin_name = QtCore.Property(str, get_pin_name, set_pin_name, reset_pin_name) class GridLayout(QtWidgets.QWidget, _HalSensitiveBase): def __init__(self, parent=None): @@ -337,7 +337,7 @@ def get_richText(self): return self.text() def reset_richText(self): self.setText('Button') - richtext_string = QtCore.pyqtProperty(str, get_richText, set_richText, reset_richText) + richtext_string = QtCore.Property(str, get_richText, set_richText, reset_richText) # button for function callbacks rather then HAL pins class IndicatedPushButton(QtWidgets.QPushButton, IndicatedMixIn): @@ -477,7 +477,7 @@ def updateGroup(self): ######################################################################## # This is how designer can interact with our widget properties. - # designer will show the QtCore.pyqtProperty properties in the editor + # designer will show the QtCore.Property properties in the editor # it will use the get set and reset calls to do those actions ######################################################################## @@ -489,7 +489,7 @@ def reset_pin_type(self): self._pin_type = HALPinType.S32 # designer will show these properties in this order: - pin_type = QtCore.pyqtProperty(HALPinType, get_pin_type, set_pin_type, reset_pin_type) + pin_type = QtCore.Property(HALPinType, get_pin_type, set_pin_type, reset_pin_type) def set_group_pin_name(self, value): self._groupPinName = value @@ -497,7 +497,7 @@ def get_group_pin_name(self): return self._groupPinName def reset_group_pin_name(self): self._groupPinName = '' - groupPinName = QtCore.pyqtProperty(str, get_group_pin_name, set_group_pin_name, reset_group_pin_name) + groupPinName = QtCore.Property(str, get_group_pin_name, set_group_pin_name, reset_group_pin_name) def set_exclusive_value(self, data): self._exclusiveValue = data @@ -508,7 +508,7 @@ def reset_exclusive_value(self): self._exclusiveValue = 0.0 self.updateGroup() - exclusiveHALValue = QtCore.pyqtProperty(float, get_exclusive_value, set_exclusive_value, reset_exclusive_value) + exclusiveHALValue = QtCore.Property(float, get_exclusive_value, set_exclusive_value, reset_exclusive_value) class ScaledLabel(QtWidgets.QLabel): ''' @@ -609,6 +609,6 @@ def get_testSample(self): def reset_testSample(self): self._text = '' - scaleText = QtCore.pyqtProperty(bool, get_scaleText, set_scaleText, reset_scaleText) - textSpaceSample = QtCore.pyqtProperty(str, get_testSample, set_testSample, reset_testSample) + scaleText = QtCore.Property(bool, get_scaleText, set_scaleText, reset_scaleText) + textSpaceSample = QtCore.Property(str, get_testSample, set_testSample, reset_testSample) diff --git a/lib/python/qtvcp/widgets/state_label.py b/lib/python/qtvcp/widgets/state_label.py index 4f5cb9f793e..7bab1f615f7 100644 --- a/lib/python/qtvcp/widgets/state_label.py +++ b/lib/python/qtvcp/widgets/state_label.py @@ -15,7 +15,7 @@ ############################################################################### -from PyQt5 import QtCore +from qtpy import QtCore from qtvcp.widgets.simple_widgets import ScaledLabel from qtvcp.widgets.widget_baseclass import _HalWidgetBase @@ -66,7 +66,7 @@ def _set_text(self, data): ######################################################################### # This is how designer can interact with our widget properties. - # designer will show the pyqtProperty properties in the editor + # designer will show the Property properties in the editor # it will use the get set and reset calls to do those actions # # _toggle_properties makes it so we can only select one option @@ -156,16 +156,16 @@ def reset_diameter_mode(self): # designer will show these properties in this order: # BOOL - machine_is_metric_status = QtCore.pyqtProperty(bool, get_machine_units, set_machine_units, reset_machine_units) - metric_mode_status = QtCore.pyqtProperty(bool, get_metric_mode, set_metric_mode, reset_metric_mode) - css_mode_status = QtCore.pyqtProperty(bool, get_css_mode, set_css_mode, reset_css_mode) - fpr_mode_status = QtCore.pyqtProperty(bool, get_fpr_mode, set_fpr_mode, reset_fpr_mode) - diameter_mode_status = QtCore.pyqtProperty(bool, get_diameter_mode, set_diameter_mode, reset_diameter_mode) + machine_is_metric_status = QtCore.Property(bool, get_machine_units, set_machine_units, reset_machine_units) + metric_mode_status = QtCore.Property(bool, get_metric_mode, set_metric_mode, reset_metric_mode) + css_mode_status = QtCore.Property(bool, get_css_mode, set_css_mode, reset_css_mode) + fpr_mode_status = QtCore.Property(bool, get_fpr_mode, set_fpr_mode, reset_fpr_mode) + diameter_mode_status = QtCore.Property(bool, get_diameter_mode, set_diameter_mode, reset_diameter_mode) # Non BOOL - true_textTemplate = QtCore.pyqtProperty(str, get_true_textTemplate, + true_textTemplate = QtCore.Property(str, get_true_textTemplate, set_true_textTemplate, reset_true_textTemplate) - false_textTemplate = QtCore.pyqtProperty(str, get_false_textTemplate, + false_textTemplate = QtCore.Property(str, get_false_textTemplate, set_false_textTemplate, reset_false_textTemplate) # boilder code diff --git a/lib/python/qtvcp/widgets/state_led.py b/lib/python/qtvcp/widgets/state_led.py index fa57b1186dd..d172023f14d 100644 --- a/lib/python/qtvcp/widgets/state_led.py +++ b/lib/python/qtvcp/widgets/state_led.py @@ -15,7 +15,7 @@ # ################################################################################# -from PyQt5.QtCore import pyqtProperty +from qtpy.QtCore import Property import hal from qtvcp.widgets.led_widget import LED from qtvcp.core import Status @@ -238,7 +238,7 @@ def _set_halpin_text(self): ######################################################################### # This is how designer can interact with our widget properties. - # designer will show the pyqtProperty properties in the editor + # designer will show the Property properties in the editor # it will use the get set and reset calls to do those actions # # _toggle_properties makes it so we can only select one option @@ -517,35 +517,35 @@ def reset_halpin_name(self): # designer will show these properties in this order: # BOOL - invert_state_status = pyqtProperty(bool, get_invert_state, set_invert_state, reset_invert_state) - is_paused_status = pyqtProperty(bool, get_is_paused, set_is_paused, reset_is_paused) - is_estopped_status = pyqtProperty(bool, get_is_estopped, set_is_estopped, reset_is_estopped) - is_on_status = pyqtProperty(bool, get_is_on, set_is_on, reset_is_on) - is_idle_status = pyqtProperty(bool, get_is_idle, set_is_idle, reset_is_idle) - is_homed_status = pyqtProperty(bool, get_is_homed, set_is_homed, reset_is_homed) - is_flood_status = pyqtProperty(bool, get_is_flood, set_is_flood, reset_is_flood) - is_mist_status = pyqtProperty(bool, get_is_mist, set_is_mist, reset_is_mist) - is_block_delete_status = pyqtProperty(bool, get_is_block_delete, set_is_block_delete, reset_is_block_delete) - is_optional_stop_status = pyqtProperty(bool, get_is_optional_stop, set_is_optional_stop, reset_is_optional_stop) - is_joint_homed_status = pyqtProperty(bool, get_is_joint_homed, set_is_joint_homed, reset_is_joint_homed) - is_limits_overridden_status = pyqtProperty(bool, get_is_limits_overridden, set_is_limits_overridden, + invert_state_status = Property(bool, get_invert_state, set_invert_state, reset_invert_state) + is_paused_status = Property(bool, get_is_paused, set_is_paused, reset_is_paused) + is_estopped_status = Property(bool, get_is_estopped, set_is_estopped, reset_is_estopped) + is_on_status = Property(bool, get_is_on, set_is_on, reset_is_on) + is_idle_status = Property(bool, get_is_idle, set_is_idle, reset_is_idle) + is_homed_status = Property(bool, get_is_homed, set_is_homed, reset_is_homed) + is_flood_status = Property(bool, get_is_flood, set_is_flood, reset_is_flood) + is_mist_status = Property(bool, get_is_mist, set_is_mist, reset_is_mist) + is_block_delete_status = Property(bool, get_is_block_delete, set_is_block_delete, reset_is_block_delete) + is_optional_stop_status = Property(bool, get_is_optional_stop, set_is_optional_stop, reset_is_optional_stop) + is_joint_homed_status = Property(bool, get_is_joint_homed, set_is_joint_homed, reset_is_joint_homed) + is_limits_overridden_status = Property(bool, get_is_limits_overridden, set_is_limits_overridden, reset_is_limits_overridden) - is_manual_status = pyqtProperty(bool, get_is_manual, set_is_manual, reset_is_manual) - is_mdi_status = pyqtProperty(bool, get_is_mdi, set_is_mdi, reset_is_mdi) - is_auto_status = pyqtProperty(bool, get_is_auto, set_is_auto, reset_is_auto) - is_spindle_stopped_status = pyqtProperty(bool, get_is_spindle_stopped, set_is_spindle_stopped, reset_is_spindle_stopped) - is_spindle_fwd_status = pyqtProperty(bool, get_is_spindle_fwd, set_is_spindle_fwd, reset_is_spindle_fwd) - is_spindle_rev_status = pyqtProperty(bool, get_is_spindle_rev, set_is_spindle_rev, reset_is_spindle_rev) - is_spindle_at_speed_status = pyqtProperty(bool, get_is_spindle_at_speed, set_is_spindle_at_speed, reset_is_spindle_at_speed) - neg_hard_limit_state = pyqtProperty(bool, get_neg_limit_tripped, set_neg_limit_tripped, reset_neg_limit_tripped) - pos_hard_limit_state = pyqtProperty(bool, get_pos_limit_tripped, set_pos_limit_tripped, reset_pos_limit_tripped) - hard_limits_state = pyqtProperty(bool, get_limits_tripped, set_limits_tripped, reset_limits_tripped) - follow_halpin_state = pyqtProperty(bool, get_follow_pin, set_follow_pin, reset_follow_pin) + is_manual_status = Property(bool, get_is_manual, set_is_manual, reset_is_manual) + is_mdi_status = Property(bool, get_is_mdi, set_is_mdi, reset_is_mdi) + is_auto_status = Property(bool, get_is_auto, set_is_auto, reset_is_auto) + is_spindle_stopped_status = Property(bool, get_is_spindle_stopped, set_is_spindle_stopped, reset_is_spindle_stopped) + is_spindle_fwd_status = Property(bool, get_is_spindle_fwd, set_is_spindle_fwd, reset_is_spindle_fwd) + is_spindle_rev_status = Property(bool, get_is_spindle_rev, set_is_spindle_rev, reset_is_spindle_rev) + is_spindle_at_speed_status = Property(bool, get_is_spindle_at_speed, set_is_spindle_at_speed, reset_is_spindle_at_speed) + neg_hard_limit_state = Property(bool, get_neg_limit_tripped, set_neg_limit_tripped, reset_neg_limit_tripped) + pos_hard_limit_state = Property(bool, get_pos_limit_tripped, set_pos_limit_tripped, reset_pos_limit_tripped) + hard_limits_state = Property(bool, get_limits_tripped, set_limits_tripped, reset_limits_tripped) + follow_halpin_state = Property(bool, get_follow_pin, set_follow_pin, reset_follow_pin) # NON BOOL - joint_number_status = pyqtProperty(int, get_joint_number, set_joint_number, reset_joint_number) - spindle_near_percent_status = pyqtProperty(int, get_spindle_near_percent, set_spindle_near_percent, reset_spindle_near_percent) - halpin_name = pyqtProperty(str, get_halpin_name, set_halpin_name, reset_halpin_name) + joint_number_status = Property(int, get_joint_number, set_joint_number, reset_joint_number) + spindle_near_percent_status = Property(int, get_spindle_near_percent, set_spindle_near_percent, reset_spindle_near_percent) + halpin_name = Property(str, get_halpin_name, set_halpin_name, reset_halpin_name) # boilder code def __getitem__(self, item): @@ -556,7 +556,7 @@ def __setitem__(self, item, value): if __name__ == "__main__": import sys - from PyQt5.QtGui import QApplication + from qtpy.QtGui import QApplication app = QApplication(sys.argv) led = StateLED() led.show() diff --git a/lib/python/qtvcp/widgets/status_label.py b/lib/python/qtvcp/widgets/status_label.py index ee54c05b0f0..0336f895913 100644 --- a/lib/python/qtvcp/widgets/status_label.py +++ b/lib/python/qtvcp/widgets/status_label.py @@ -16,7 +16,7 @@ import time import os -from PyQt5 import QtCore +from qtpy import QtCore from qtvcp import logger from qtvcp.widgets.simple_widgets import ScaledLabel @@ -370,7 +370,7 @@ def _set_motion_type(self, data): ######################################################################### # This is how designer can interact with our widget properties. - # designer will show the pyqtProperty properties in the editor + # designer will show the Property properties in the editor # it will use the get set and reset calls to do those actions # # _toggle_properties makes it so we can only select one option @@ -890,80 +890,80 @@ def get_halpin_name(self): def reset_halpin_name(self): self._halpin_name = '' - textTemplate = QtCore.pyqtProperty(str, get_textTemplate, set_textTemplate, reset_textTemplate) - alt_textTemplate = QtCore.pyqtProperty(str, get_alt_textTemplate, set_alt_textTemplate, reset_alt_textTemplate) - index_number = QtCore.pyqtProperty(int, get_index, set_index, reset_index) + textTemplate = QtCore.Property(str, get_textTemplate, set_textTemplate, reset_textTemplate) + alt_textTemplate = QtCore.Property(str, get_alt_textTemplate, set_alt_textTemplate, reset_alt_textTemplate) + index_number = QtCore.Property(int, get_index, set_index, reset_index) - feed_override_status = QtCore.pyqtProperty(bool, get_feed_override, set_feed_override, reset_feed_override) - rapid_override_status = QtCore.pyqtProperty(bool, get_rapid_override, set_rapid_override, reset_rapid_override) - max_velocity_override_status = QtCore.pyqtProperty(bool, get_max_velocity_override, set_max_velocity_override, reset_max_velocity_override) - spindle_override_status = QtCore.pyqtProperty(bool, get_spindle_override, set_spindle_override, + feed_override_status = QtCore.Property(bool, get_feed_override, set_feed_override, reset_feed_override) + rapid_override_status = QtCore.Property(bool, get_rapid_override, set_rapid_override, reset_rapid_override) + max_velocity_override_status = QtCore.Property(bool, get_max_velocity_override, set_max_velocity_override, reset_max_velocity_override) + spindle_override_status = QtCore.Property(bool, get_spindle_override, set_spindle_override, reset_spindle_override) - jograte_status = QtCore.pyqtProperty(bool, get_jograte, set_jograte, reset_jograte) - jograte_angular_status = QtCore.pyqtProperty(bool, get_jograte_angular, set_jograte_angular, reset_jograte_angular) - jogincr_status = QtCore.pyqtProperty(bool, get_jogincr, set_jogincr, reset_jogincr) - jogincr_angular_status = QtCore.pyqtProperty(bool, get_jogincr_angular, set_jogincr_angular, reset_jogincr_angular) - current_feedrate_status = QtCore.pyqtProperty(bool, get_current_feedrate, set_current_feedrate, + jograte_status = QtCore.Property(bool, get_jograte, set_jograte, reset_jograte) + jograte_angular_status = QtCore.Property(bool, get_jograte_angular, set_jograte_angular, reset_jograte_angular) + jogincr_status = QtCore.Property(bool, get_jogincr, set_jogincr, reset_jogincr) + jogincr_angular_status = QtCore.Property(bool, get_jogincr_angular, set_jogincr_angular, reset_jogincr_angular) + current_feedrate_status = QtCore.Property(bool, get_current_feedrate, set_current_feedrate, reset_current_feedrate) - current_FPU_status = QtCore.pyqtProperty(bool, get_current_feedunit, set_current_feedunit, reset_current_feedunit) - requested_spindle_speed_status = QtCore.pyqtProperty(bool, get_requested_spindle_speed, + current_FPU_status = QtCore.Property(bool, get_current_feedunit, set_current_feedunit, reset_current_feedunit) + requested_spindle_speed_status = QtCore.Property(bool, get_requested_spindle_speed, set_requested_spindle_speed, reset_requested_spindle_speed) - actual_spindle_speed_status = QtCore.pyqtProperty(bool, get_actual_spindle_speed, set_actual_spindle_speed, + actual_spindle_speed_status = QtCore.Property(bool, get_actual_spindle_speed, set_actual_spindle_speed, reset_actual_spindle_speed) - user_system_status = QtCore.pyqtProperty(bool, get_user_system, set_user_system, reset_user_system) - blendcode_status = QtCore.pyqtProperty(bool, get_blendcode, set_blendcode, reset_blendcode) - fcode_status = QtCore.pyqtProperty(bool, get_fcode, set_fcode, reset_fcode) - gcodes_status = QtCore.pyqtProperty(bool, get_gcodes, set_gcodes, reset_gcodes) - gcode_group0_status = QtCore.pyqtProperty(bool, get_gcode_group0, + user_system_status = QtCore.Property(bool, get_user_system, set_user_system, reset_user_system) + blendcode_status = QtCore.Property(bool, get_blendcode, set_blendcode, reset_blendcode) + fcode_status = QtCore.Property(bool, get_fcode, set_fcode, reset_fcode) + gcodes_status = QtCore.Property(bool, get_gcodes, set_gcodes, reset_gcodes) + gcode_group0_status = QtCore.Property(bool, get_gcode_group0, set_gcode_group0, reset_gcode_group0) - gcode_group1_status = QtCore.pyqtProperty(bool, get_gcode_group1, + gcode_group1_status = QtCore.Property(bool, get_gcode_group1, set_gcode_group1, reset_gcode_group1) - gcode_group2_status = QtCore.pyqtProperty(bool, get_gcode_group2, + gcode_group2_status = QtCore.Property(bool, get_gcode_group2, set_gcode_group2, reset_gcode_group2) - gcode_group3_status = QtCore.pyqtProperty(bool, get_gcode_group3, + gcode_group3_status = QtCore.Property(bool, get_gcode_group3, set_gcode_group3, reset_gcode_group3) - gcode_group4_status = QtCore.pyqtProperty(bool, get_gcode_group4, + gcode_group4_status = QtCore.Property(bool, get_gcode_group4, set_gcode_group4, reset_gcode_group4) - gcode_group5_status = QtCore.pyqtProperty(bool, get_gcode_group5, + gcode_group5_status = QtCore.Property(bool, get_gcode_group5, set_gcode_group5, reset_gcode_group5) - gcode_group6_status = QtCore.pyqtProperty(bool, get_gcode_group6, + gcode_group6_status = QtCore.Property(bool, get_gcode_group6, set_gcode_group6, reset_gcode_group6) - gcode_group7_status = QtCore.pyqtProperty(bool, get_gcode_group7, + gcode_group7_status = QtCore.Property(bool, get_gcode_group7, set_gcode_group7, reset_gcode_group7) - gcode_group8_status = QtCore.pyqtProperty(bool, get_gcode_group8, + gcode_group8_status = QtCore.Property(bool, get_gcode_group8, set_gcode_group8, reset_gcode_group8) - gcode_group10_status = QtCore.pyqtProperty(bool, get_gcode_group10, + gcode_group10_status = QtCore.Property(bool, get_gcode_group10, set_gcode_group10, reset_gcode_group10) - gcode_group12_status = QtCore.pyqtProperty(bool, get_gcode_group12, + gcode_group12_status = QtCore.Property(bool, get_gcode_group12, set_gcode_group12, reset_gcode_group12) - gcode_group13_status = QtCore.pyqtProperty(bool, get_gcode_group13, + gcode_group13_status = QtCore.Property(bool, get_gcode_group13, set_gcode_group13, reset_gcode_group13) - gcode_group14_status = QtCore.pyqtProperty(bool, get_gcode_group14, + gcode_group14_status = QtCore.Property(bool, get_gcode_group14, set_gcode_group14, reset_gcode_group14) - gcode_group15_status = QtCore.pyqtProperty(bool, get_gcode_group15, + gcode_group15_status = QtCore.Property(bool, get_gcode_group15, set_gcode_group15, reset_gcode_group15) - mcodes_status = QtCore.pyqtProperty(bool, get_mcodes, set_mcodes, reset_mcodes) - tool_diameter_status = QtCore.pyqtProperty(bool, get_tool_diameter, set_tool_diameter, reset_tool_diameter) - tool_comment_status = QtCore.pyqtProperty(bool, get_tool_comment, set_tool_comment, reset_tool_comment) - tool_number_status = QtCore.pyqtProperty(bool, get_tool_number, set_tool_number, reset_tool_number) - tool_offset_status = QtCore.pyqtProperty(bool, get_tool_offset, set_tool_offset, reset_tool_offset) - gcode_selected_status = QtCore.pyqtProperty(bool, get_gcode_selected, set_gcode_selected, reset_gcode_selected) - actual_surface_speed_status = QtCore.pyqtProperty(bool, get_actual_surface_speed, set_actual_surface_speed, + mcodes_status = QtCore.Property(bool, get_mcodes, set_mcodes, reset_mcodes) + tool_diameter_status = QtCore.Property(bool, get_tool_diameter, set_tool_diameter, reset_tool_diameter) + tool_comment_status = QtCore.Property(bool, get_tool_comment, set_tool_comment, reset_tool_comment) + tool_number_status = QtCore.Property(bool, get_tool_number, set_tool_number, reset_tool_number) + tool_offset_status = QtCore.Property(bool, get_tool_offset, set_tool_offset, reset_tool_offset) + gcode_selected_status = QtCore.Property(bool, get_gcode_selected, set_gcode_selected, reset_gcode_selected) + actual_surface_speed_status = QtCore.Property(bool, get_actual_surface_speed, set_actual_surface_speed, reset_actual_surface_speed) - filename_status = QtCore.pyqtProperty(bool, get_filename, set_filename, + filename_status = QtCore.Property(bool, get_filename, set_filename, reset_filename) - filepath_status = QtCore.pyqtProperty(bool, get_filepath, set_filepath, + filepath_status = QtCore.Property(bool, get_filepath, set_filepath, reset_filepath) - machine_state_status = QtCore.pyqtProperty(bool, get_machine_state, set_machine_state, + machine_state_status = QtCore.Property(bool, get_machine_state, set_machine_state, reset_machine_state) - motion_type_status = QtCore.pyqtProperty(bool, get_motion_type, set_motion_type, + motion_type_status = QtCore.Property(bool, get_motion_type, set_motion_type, reset_motion_type) - time_stamp_status = QtCore.pyqtProperty(bool, get_time_stamp, set_time_stamp, + time_stamp_status = QtCore.Property(bool, get_time_stamp, set_time_stamp, reset_time_stamp) - halpin_status = QtCore.pyqtProperty(bool, get_halpin, set_halpin, reset_halpin) - state_label_list = QtCore.pyqtProperty(QtCore.QVariant.typeToName(QtCore.QVariant.StringList), get_state_label_l, set_state_label_l, reset_state_label_l) - motion_type_list = QtCore.pyqtProperty(QtCore.QVariant.typeToName(QtCore.QVariant.StringList), get_motion_label_l, set_motion_label_l, reset_motion_label_l) - halpin_name = QtCore.pyqtProperty(str, get_halpin_name, set_halpin_name, reset_halpin_name) + halpin_status = QtCore.Property(bool, get_halpin, set_halpin, reset_halpin) + state_label_list = QtCore.Property(QtCore.QVariant.typeToName(QtCore.QVariant.StringList), get_state_label_l, set_state_label_l, reset_state_label_l) + motion_type_list = QtCore.Property(QtCore.QVariant.typeToName(QtCore.QVariant.StringList), get_motion_label_l, set_motion_label_l, reset_motion_label_l) + halpin_name = QtCore.Property(str, get_halpin_name, set_halpin_name, reset_halpin_name) # boilder code def __getitem__(self, item): return getattr(self, item) @@ -971,9 +971,9 @@ def __setitem__(self, item, value): return setattr(self, item, value) if __name__ == "__main__": - from PyQt5.QtWidgets import * - from PyQt5.QtCore import * - from PyQt5.QtGui import * + from qtpy.QtWidgets import * + from qtpy.QtCore import * + from qtpy.QtGui import * import sys diff --git a/lib/python/qtvcp/widgets/status_slider.py b/lib/python/qtvcp/widgets/status_slider.py index 8ccbab52d47..fa1b93571e8 100644 --- a/lib/python/qtvcp/widgets/status_slider.py +++ b/lib/python/qtvcp/widgets/status_slider.py @@ -17,8 +17,8 @@ import hal -from PyQt5 import QtWidgets -from PyQt5.QtCore import pyqtProperty, pyqtSignal +from qtpy import QtWidgets +from qtpy.QtCore import Property, Signal from qtvcp.widgets.widget_baseclass import _HalWidgetBase from qtvcp.core import Status, Action, Info from qtvcp import logger @@ -41,7 +41,7 @@ class DoubleSlider(QtWidgets.QSlider): # create our our signal that we can connect to if necessary - doubleValueChanged = pyqtSignal(float) + doubleValueChanged = Signal(float) def __init__(self, *args, **kargs): super(DoubleSlider, self).__init__( *args, **kargs) @@ -172,7 +172,7 @@ def _style_polish(self, prop = 'alertState',state = 'normal'): ######################################################################### # This is how designer can interact with our widget properties. - # designer will show the pyqtProperty properties in the editor + # designer will show the Property properties in the editor # it will use the get set and reset calls to do those actions # # _toggle_properties makes it so we can only select one option @@ -254,14 +254,14 @@ def get_pin_name(self): def reset_pin_name(self): self._pin_name_ = '' - pin_name = pyqtProperty(str, get_pin_name, set_pin_name, reset_pin_name) - halpin_option = pyqtProperty(bool, get_halpin_option, set_halpin_option, reset_halpin_option) - rapid_rate = pyqtProperty(bool, getrapid, setrapid, resetrapid) - feed_rate = pyqtProperty(bool, getfeed, setfeed, resetfeed) - spindle_rate = pyqtProperty(bool, getspindle, setspindle, resetspindle) - jograte_rate = pyqtProperty(bool, getjograte, setjograte, resetjograte) - jograte_angular_rate = pyqtProperty(bool, getjograte_angular, setjograte_angular, resetjograte_angular) - max_velocity_rate = pyqtProperty(bool, getmax_velocity, setmax_velocity, resetmax_velocity) + pin_name = Property(str, get_pin_name, set_pin_name, reset_pin_name) + halpin_option = Property(bool, get_halpin_option, set_halpin_option, reset_halpin_option) + rapid_rate = Property(bool, getrapid, setrapid, resetrapid) + feed_rate = Property(bool, getfeed, setfeed, resetfeed) + spindle_rate = Property(bool, getspindle, setspindle, resetspindle) + jograte_rate = Property(bool, getjograte, setjograte, resetjograte) + jograte_angular_rate = Property(bool, getjograte_angular, setjograte_angular, resetjograte_angular) + max_velocity_rate = Property(bool, getmax_velocity, setmax_velocity, resetmax_velocity) def setAlertState(self, data): self._alertState = data @@ -282,9 +282,9 @@ def getAlertOver(self): def resetAlertOver(self): self._alertOver = 100.0 - alertState = pyqtProperty(str, getAlertState, setAlertState) - alertUnder = pyqtProperty(float, getAlertUnder, setAlertUnder, resetAlertUnder) - alertOver = pyqtProperty(float, getAlertOver, setAlertOver, resetAlertOver) + alertState = Property(str, getAlertState, setAlertState) + alertUnder = Property(float, getAlertUnder, setAlertUnder, resetAlertUnder) + alertOver = Property(float, getAlertOver, setAlertOver, resetAlertOver) ############################## # required class boiler code # diff --git a/lib/python/qtvcp/widgets/status_stacked.py b/lib/python/qtvcp/widgets/status_stacked.py index bf06ef99043..55827f54b49 100644 --- a/lib/python/qtvcp/widgets/status_stacked.py +++ b/lib/python/qtvcp/widgets/status_stacked.py @@ -15,7 +15,7 @@ # ################################################################################# -from PyQt5 import QtWidgets +from qtpy import QtWidgets from qtvcp.widgets.widget_baseclass import _HalWidgetBase from qtvcp.core import Status diff --git a/lib/python/qtvcp/widgets/stylesheeteditor.py b/lib/python/qtvcp/widgets/stylesheeteditor.py index a87b9aefe21..19531fb8e11 100644 --- a/lib/python/qtvcp/widgets/stylesheeteditor.py +++ b/lib/python/qtvcp/widgets/stylesheeteditor.py @@ -40,10 +40,10 @@ ########################################################################### import os -from PyQt5 import uic -from PyQt5.QtCore import pyqtSlot, QFile, QTextStream, QUrl, Qt -from PyQt5.QtGui import QStandardItem, QTextCursor, QTextCharFormat, QTextDocument, QColor -from PyQt5.QtWidgets import QDialog, QFileDialog, QMessageBox, QColorDialog +from qtpy import uic +from qtpy.QtCore import Slot, QFile, QTextStream, QUrl, Qt +from qtpy.QtGui import QStandardItem, QTextCursor, QTextCharFormat, QTextDocument, QColor +from qtpy.QtWidgets import QDialog, QFileDialog, QMessageBox, QColorDialog from qtvcp.core import Path from qtvcp.qt_makegui import VCPWindow @@ -173,11 +173,11 @@ def select_match(self): cursor = self.matches[self.current_match_index] self.styleTextEdit.setTextCursor(cursor) - @pyqtSlot() + @Slot() def on_styleTextView_textChanged(self): self.applyButton.setEnabled(True) - @pyqtSlot() + @Slot() def on_applyButton_clicked(self): self.parent.setStyleSheet("") if self.tabWidget.currentIndex() == 0: @@ -199,7 +199,7 @@ def on_applyButton_clicked(self): except: pass - @pyqtSlot() + @Slot() def on_openButton_clicked(self): if PATH.IS_SCREEN: DIR = PATH.SCREENDIR @@ -240,7 +240,7 @@ def on_openButton_clicked(self): model.appendRow(item) self.styleSheetCombo.setCurrentIndex(self.styleSheetCombo.count()-1) - @pyqtSlot() + @Slot() def on_saveButton_clicked(self): if PATH.IS_SCREEN: DIR = PATH.SCREENDIR @@ -272,19 +272,19 @@ def on_saveButton_clicked(self): fileName = dialog.selectedFiles()[0] self.saveStyleSheet(fileName) - @pyqtSlot() + @Slot() def on_closeButton_clicked(self): self.close() - @pyqtSlot() + @Slot() def on_clearButton_clicked(self): self.styleTextEdit.clear() - @pyqtSlot() + @Slot() def on_copyButton_clicked(self): self.styleTextEdit.setPlainText(self.styleTextView.toPlainText()) - @pyqtSlot() + @Slot() def on_colorButton_clicked(self): _color = QColorDialog.getColor() if _color.isValid(): diff --git a/lib/python/qtvcp/widgets/system_tool_button.py b/lib/python/qtvcp/widgets/system_tool_button.py index b34f2eba9d3..e89b41a4ca7 100644 --- a/lib/python/qtvcp/widgets/system_tool_button.py +++ b/lib/python/qtvcp/widgets/system_tool_button.py @@ -15,8 +15,8 @@ ############################################################################### -from PyQt5.QtWidgets import QToolButton, QMenu, QAction -from PyQt5.QtGui import QIcon +from qtpy.QtWidgets import QToolButton, QMenu, QAction +from qtpy.QtGui import QIcon from qtvcp.widgets.widget_baseclass import _HalWidgetBase from qtvcp.widgets.dialog_widget import EntryDialog @@ -121,7 +121,7 @@ def __setitem__(self, item, value): # for testing without editor: def main(): import sys - from PyQt5.QtWidgets import QApplication + from qtpy.QtWidgets import QApplication app = QApplication(sys.argv) widget = SystemToolButton() widget.show() diff --git a/lib/python/qtvcp/widgets/tab_widget.py b/lib/python/qtvcp/widgets/tab_widget.py index 29febd97df2..dc8797834ac 100644 --- a/lib/python/qtvcp/widgets/tab_widget.py +++ b/lib/python/qtvcp/widgets/tab_widget.py @@ -13,8 +13,8 @@ # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. -from PyQt5.QtWidgets import (QTabWidget, QTabBar) -from PyQt5.QtCore import pyqtProperty, QSize +from qtpy.QtWidgets import (QTabWidget, QTabBar) +from qtpy.QtCore import Property, QSize class TabWidget(QTabWidget): def __init__(self, parent=None): @@ -30,7 +30,7 @@ def get_tabSize(self): def reset_tabSize(self): self._tabSize = 1.5 - tabSize = pyqtProperty(float, get_tabSize, set_tabSize, reset_tabSize) + tabSize = Property(float, get_tabSize, set_tabSize, reset_tabSize) class TabBar(QTabBar): def __init__(self, parent=None, size=1.5): diff --git a/lib/python/qtvcp/widgets/tool_chooser.py b/lib/python/qtvcp/widgets/tool_chooser.py index 061ff2474f2..651ad3cdccb 100644 --- a/lib/python/qtvcp/widgets/tool_chooser.py +++ b/lib/python/qtvcp/widgets/tool_chooser.py @@ -18,10 +18,10 @@ import sys import os import operator -from PyQt5 import QtGui, QtWidgets, uic -from PyQt5.QtCore import Qt, QAbstractTableModel, QVariant -from PyQt5.QtGui import QColor, QIcon -from PyQt5.QtWidgets import (QTableView, QAbstractItemView, QCheckBox,QStyledItemDelegate, qApp) +from qtpy import QtGui, QtWidgets, uic +from qtpy.QtCore import Qt, QAbstractTableModel, QVariant +from qtpy.QtGui import QColor, QIcon +from qtpy.QtWidgets import (QTableView, QAbstractItemView, QCheckBox,QStyledItemDelegate, qApp) from qtvcp.widgets.widget_baseclass import _HalWidgetBase from qtvcp.core import Status, Action, Info, Tool from qtvcp import logger @@ -172,9 +172,9 @@ def sort(self, Ncol, order): # Testing # ############################# if __name__ == "__main__": - from PyQt5.QtWidgets import * - from PyQt5.QtCore import * - from PyQt5.QtGui import * + from qtpy.QtWidgets import * + from qtpy.QtCore import * + from qtpy.QtGui import * app = QtWidgets.QApplication(sys.argv) w = ToolChooser() w.show() diff --git a/lib/python/qtvcp/widgets/tool_offsetview.py b/lib/python/qtvcp/widgets/tool_offsetview.py index 241ba26e3fc..0e98a108345 100644 --- a/lib/python/qtvcp/widgets/tool_offsetview.py +++ b/lib/python/qtvcp/widgets/tool_offsetview.py @@ -18,9 +18,9 @@ import os import operator -from PyQt5.QtCore import Qt, QAbstractTableModel, QVariant, pyqtProperty, QSize, pyqtSlot -from PyQt5.QtGui import QColor, QIcon -from PyQt5.QtWidgets import (QTableView, QAbstractItemView, QCheckBox, +from qtpy.QtCore import Qt, QAbstractTableModel, QVariant, Property, QSize, Slot +from qtpy.QtGui import QColor, QIcon +from qtpy.QtWidgets import (QTableView, QAbstractItemView, QCheckBox, QItemEditorFactory,QDoubleSpinBox,QSpinBox,QStyledItemDelegate, qApp) from qtvcp.widgets.widget_baseclass import _HalWidgetBase from qtvcp.core import Status, Action, Info, Tool, Path @@ -307,8 +307,8 @@ def selected(self, color): self.setProperty('styleColorSelection', QColor(color)) # external controls - @pyqtSlot(float) - @pyqtSlot(int) + @Slot(float) + @Slot(int) def scroll(self, data): if data > self._last: self.right() @@ -317,7 +317,7 @@ def scroll(self, data): self._last = data # moves the selection up - @pyqtSlot() + @Slot() def up(self): cr = self.currentIndex().row() # state of checkbox ie. is this row selected? @@ -330,7 +330,7 @@ def up(self): self.setCurrentIndex(self.moveCursor(QAbstractItemView.CursorAction.MoveUp,Qt.NoModifier)) # moves the selection down - @pyqtSlot() + @Slot() def down(self): cr = self.currentIndex().row() # state of checkbox ie. is this row selected? @@ -353,7 +353,7 @@ def toggleCurrent(self): ######################################################################### # This is how designer can interact with our widget properties. - # designer will show the pyqtProperty properties in the editor + # designer will show the Property properties in the editor # it will use the get set and reset calls to do those actions # ######################################################################## @@ -364,7 +364,7 @@ def get_dialog_code(self): return self.dialog_code def reset_dialog_code(self): self.dialog_code = 'CALCULATOR' - dialog_code_string = pyqtProperty(str, get_dialog_code, set_dialog_code, reset_dialog_code) + dialog_code_string = Property(str, get_dialog_code, set_dialog_code, reset_dialog_code) def set_keyboard_code(self, data): self.text_dialog_code = data @@ -372,7 +372,7 @@ def get_keyboard_code(self): return self.text_dialog_code def reset_keyboard_code(self): self.text_dialog_code = 'KEYBOARD' - text_dialog_code_string = pyqtProperty(str, get_keyboard_code, set_keyboard_code, reset_keyboard_code) + text_dialog_code_string = Property(str, get_keyboard_code, set_keyboard_code, reset_keyboard_code) def setmetrictemplate(self, data): self.tablemodel.metric_text_template = data @@ -380,7 +380,7 @@ def getmetrictemplate(self): return self.tablemodel.metric_text_template def resetmetrictemplate(self): self.tablemodel.metric_text_template = '%10.3f' - metric_template = pyqtProperty(str, getmetrictemplate, setmetrictemplate, resetmetrictemplate) + metric_template = Property(str, getmetrictemplate, setmetrictemplate, resetmetrictemplate) def setimperialtexttemplate(self, data): self.tablemodel.imperial_text_template = data @@ -388,21 +388,21 @@ def getimperialtexttemplate(self): return self.tablemodel.imperial_text_template def resetimperialtexttemplate(self): self.tablemodel.imperial_text_template = '%9.4f' - imperial_template = pyqtProperty(str, getimperialtexttemplate, setimperialtexttemplate, resetimperialtexttemplate) + imperial_template = Property(str, getimperialtexttemplate, setimperialtexttemplate, resetimperialtexttemplate) def getColorHighlight(self): return QColor(self.tablemodel._highlightcolor) def setColorHighlight(self, value): self.tablemodel._highlightcolor = value.name() #self.tablemodel.layoutChanged.emit() - styleColorHighlight = pyqtProperty(QColor, getColorHighlight, setColorHighlight) + styleColorHighlight = Property(QColor, getColorHighlight, setColorHighlight) def getColorSelection(self): return QColor(self.tablemodel._selectedcolor) def setColorSelection(self, value): self.tablemodel._selectedcolor = value.name() #self.tablemodel.layoutChanged.emit() - styleColorSelection = pyqtProperty(QColor, getColorSelection, setColorSelection) + styleColorSelection = Property(QColor, getColorSelection, setColorSelection) ######################################### # custom model @@ -642,7 +642,7 @@ def sort(self, Ncol, order): self.layoutChanged.emit() if __name__ == "__main__": - from PyQt5.QtWidgets import QApplication + from qtpy.QtWidgets import QApplication app = QApplication(sys.argv) w = ToolOffsetView() w.setEnabled(True) diff --git a/lib/python/qtvcp/widgets/touchEntry.py b/lib/python/qtvcp/widgets/touchEntry.py index 9e0b0f7ac60..27d5ac0c6bb 100644 --- a/lib/python/qtvcp/widgets/touchEntry.py +++ b/lib/python/qtvcp/widgets/touchEntry.py @@ -1,6 +1,6 @@ -from PyQt5.QtCore import pyqtProperty, pyqtSignal, QSize, QObject, Qt -from PyQt5.QtGui import QDoubleValidator, QIntValidator -from PyQt5.QtWidgets import QWidget, QPushButton,QLineEdit, QHBoxLayout +from qtpy.QtCore import Property, Signal, QSize, QObject, Qt +from qtpy.QtGui import QDoubleValidator, QIntValidator +from qtpy.QtWidgets import QWidget, QPushButton,QLineEdit, QHBoxLayout import decimal from decimal import Decimal @@ -8,7 +8,7 @@ class LineEdit(QLineEdit): - clicked = pyqtSignal(bool) + clicked = Signal(bool) def __init__(self, parent=None): super().__init__(parent) @@ -272,9 +272,9 @@ def entryUpdate(self): # for direct testing if __name__ == "__main__": - from PyQt5.QtWidgets import * - from PyQt5.QtCore import * - from PyQt5.QtGui import * + from qtpy.QtWidgets import * + from qtpy.QtCore import * + from qtpy.QtGui import * import sys app = QApplication(sys.argv) diff --git a/lib/python/qtvcp/widgets/user_dro_label.py b/lib/python/qtvcp/widgets/user_dro_label.py index 7e5c9f80e9f..ffdd0b03928 100644 --- a/lib/python/qtvcp/widgets/user_dro_label.py +++ b/lib/python/qtvcp/widgets/user_dro_label.py @@ -17,9 +17,9 @@ import linuxcnc from math import isclose -from PyQt5 import QtCore -from PyQt5.QtWidgets import QMenu, QAction -from PyQt5.QtGui import QIcon, QColor +from qtpy import QtCore +from qtpy.QtWidgets import QMenu, QAction +from qtpy.QtGui import QIcon, QColor from qtvcp.widgets.simple_widgets import ScaledLabel from qtvcp.widgets.widget_baseclass import _HalWidgetBase @@ -155,17 +155,17 @@ def get_current_position(self): p = INFO.convert_units_9(p) return p[self.axis_index] - @QtCore.pyqtSlot(bool) + @QtCore.Slot(bool) def zero (self, data=True): p = self.get_current_position() self._lastOffset[self.axis_index] = self._offset[self.axis_index] self._offset[self.axis_index] = - p - @QtCore.pyqtSlot(int) + @QtCore.Slot(int) def setAxisIndex(self, num): self.axis_index = num - @QtCore.pyqtSlot(str) + @QtCore.Slot(str) def setAxisLetter(self, let): self.axis_index = self.axisToIndex(let) print(let,self.axis_index) @@ -221,7 +221,7 @@ def return_value(self, w, message): ######################################################################### # This is how designer can interact with our widget properties. - # designer will show the pyqtProperty properties in the editor + # designer will show the Property properties in the editor # it will use the get set and reset calls to do those actions ######################################################################## @@ -232,7 +232,7 @@ def getmetrictemplate(self): return self.metric_text_template def resetmetrictemplate(self): self.metric_text_template = '%10.3f' - metric_template = QtCore.pyqtProperty(str, getmetrictemplate, setmetrictemplate, resetmetrictemplate) + metric_template = QtCore.Property(str, getmetrictemplate, setmetrictemplate, resetmetrictemplate) def setimperialtexttemplate(self, data): self.imperial_text_template = data @@ -241,7 +241,7 @@ def getimperialtexttemplate(self): return self.imperial_text_template def resetimperialtexttemplate(self): self.imperial_text_template = '%9.4f' - imperial_template = QtCore.pyqtProperty(str, getimperialtexttemplate, setimperialtexttemplate, resetimperialtexttemplate) + imperial_template = QtCore.Property(str, getimperialtexttemplate, setimperialtexttemplate, resetimperialtexttemplate) def setangulartexttemplate(self, data): self.angular_text_template = data @@ -250,19 +250,19 @@ def getangulartexttemplate(self): return self.angular_text_template def resetangulartexttemplate(self): self.angular_text_template = '%9.2f' - angularTemplate = QtCore.pyqtProperty(str, getangulartexttemplate, setangulartexttemplate, resetangulartexttemplate) + angularTemplate = QtCore.Property(str, getangulartexttemplate, setangulartexttemplate, resetangulartexttemplate) def getNegativeColor(self): return self._negativeColor def setNegativeColor(self, value): self._negativeColor = value - negativeColor = QtCore.pyqtProperty(QColor, getNegativeColor, setNegativeColor) + negativeColor = QtCore.Property(QColor, getNegativeColor, setNegativeColor) def getPositiveColor(self): return self._positiveColor def setPositiveColor(self, value): self._positiveColor = value - positiveColor = QtCore.pyqtProperty(QColor, getPositiveColor, setPositiveColor) + positiveColor = QtCore.Property(QColor, getPositiveColor, setPositiveColor) #################### ## menu properties @@ -274,7 +274,7 @@ def get_dialog_code(self): return self.dialog_code def reset_dialog_code(self): self.dialog_code = 'CALCULATOR' - dialogName = QtCore.pyqtProperty(str, get_dialog_code, set_dialog_code, reset_dialog_code) + dialogName = QtCore.Property(str, get_dialog_code, set_dialog_code, reset_dialog_code) ############################## # required class boiler code # @@ -288,7 +288,7 @@ def __setitem__(self, item, value): # for testing without editor: def main(): import sys - from PyQt5.QtWidgets import QApplication + from qtpy.QtWidgets import QApplication app = QApplication(sys.argv) widget = UserDROLabel() diff --git a/lib/python/qtvcp/widgets/versa_probe.py b/lib/python/qtvcp/widgets/versa_probe.py index 8d9fb11518e..a0c52e1804f 100644 --- a/lib/python/qtvcp/widgets/versa_probe.py +++ b/lib/python/qtvcp/widgets/versa_probe.py @@ -20,9 +20,9 @@ import hal import json -from PyQt5 import QtGui, QtCore, QtWidgets, uic -from PyQt5.QtCore import QProcess, QEvent, Qt, pyqtProperty -from PyQt5.QtWidgets import QDialogButtonBox, QAbstractSlider +from qtpy import QtGui, QtCore, QtWidgets, uic +from qtpy.QtCore import QProcess, QEvent, Qt, Property +from qtpy.QtWidgets import QDialogButtonBox, QAbstractSlider from qtvcp.widgets.widget_baseclass import _HalWidgetBase from qtvcp.core import Status, Action, Info, Path @@ -595,7 +595,7 @@ def __setitem__(self, item, value): ######################################################################### # This is how designer can interact with our widget properties. - # designer will show the pyqtProperty properties in the editor + # designer will show the Property properties in the editor # it will use the get set and reset calls to do those actions ######################################################################### @@ -605,7 +605,7 @@ def get_dialog_code(self): return self.dialog_code def reset_dialog_code(self): self.dialog_code = 'CALCULATOR' - dialogCodeString = pyqtProperty(str, get_dialog_code, set_dialog_code, reset_dialog_code) + dialogCodeString = Property(str, get_dialog_code, set_dialog_code, reset_dialog_code) def set_runImmediately(self, data): self._runImmediately = data @@ -616,7 +616,7 @@ def reset_runImmediately(self): self._runImmediately = True # toggle run on button push or run on function call - runImmediately = pyqtProperty(bool, get_runImmediately, set_runImmediately, reset_runImmediately) + runImmediately = Property(bool, get_runImmediately, set_runImmediately, reset_runImmediately) class HelpDialog(QtWidgets.QDialog, GeometryMixin): def __init__(self, parent=None): @@ -750,9 +750,9 @@ def __init__(self, parent=None): # Testing #################################### if __name__ == "__main__": - from PyQt5.QtWidgets import * - from PyQt5.QtCore import * - from PyQt5.QtGui import * + from qtpy.QtWidgets import * + from qtpy.QtCore import * + from qtpy.QtGui import * app = QtWidgets.QApplication(sys.argv) w = VersaProbeParent() diff --git a/lib/python/qtvcp/widgets/virtualkeyboard.py b/lib/python/qtvcp/widgets/virtualkeyboard.py index 914f7174eeb..ea6c2ed222f 100644 --- a/lib/python/qtvcp/widgets/virtualkeyboard.py +++ b/lib/python/qtvcp/widgets/virtualkeyboard.py @@ -1,8 +1,8 @@ #!/usr/bin/env python3 import sys import os -from PyQt5 import QtGui, QtWidgets, uic -from PyQt5.QtCore import Qt, QEvent, pyqtSignal +from qtpy import QtGui, QtWidgets, uic +from qtpy.QtCore import Qt, QEvent, Signal from qtvcp.core import Info, Path from qtvcp import logger @@ -11,7 +11,7 @@ PATH = Path() class VirtualKeyboard(QtWidgets.QWidget): - hideKeyboard = pyqtSignal() + hideKeyboard = Signal() def __init__(self, parent=None): super(VirtualKeyboard, self).__init__(parent) @@ -181,9 +181,9 @@ def __setitem__(self, item, value): # Testing # ############################# if __name__ == "__main__": - from PyQt5.QtWidgets import * - from PyQt5.QtCore import * - from PyQt5.QtGui import * + from qtpy.QtWidgets import * + from qtpy.QtCore import * + from qtpy.QtGui import * app = QtWidgets.QApplication(sys.argv) w = VirtualKeyboard() w.show() diff --git a/lib/python/qtvcp/widgets/web_widget.py b/lib/python/qtvcp/widgets/web_widget.py index 277d7531f15..e2172aed8bf 100644 --- a/lib/python/qtvcp/widgets/web_widget.py +++ b/lib/python/qtvcp/widgets/web_widget.py @@ -1,7 +1,7 @@ import os -from PyQt5.QtCore import QUrl, QFile, QUrl -from PyQt5.QtWidgets import (QWidget,QVBoxLayout,QLabel) +from qtpy.QtCore import QUrl, QFile, QUrl +from qtpy.QtWidgets import (QWidget,QVBoxLayout,QLabel) from qtvcp.core import Path # Set up logging @@ -11,10 +11,10 @@ good = True try: - from PyQt5.QtWebEngineWidgets import QWebEngineView as WebBase + from qtpy.QtWebEngineWidgets import QWebEngineView as WebBase except: try: - from PyQt5.QtWebKitWidgets import QWebView as WebBase + from qtpy.QtWebKitWidgets import QWebView as WebBase except: LOG.warning('WebWidget - Is python3-pyqt-QtWebEngine installed?') # fail safe - mostly for designer diff --git a/lib/python/qtvcp/widgets/widget_baseclass.py b/lib/python/qtvcp/widgets/widget_baseclass.py index 53a134a7a57..9c01810571e 100644 --- a/lib/python/qtvcp/widgets/widget_baseclass.py +++ b/lib/python/qtvcp/widgets/widget_baseclass.py @@ -17,7 +17,7 @@ # the other subclasses are for simple HAL widget functionality import hal -from PyQt5.QtCore import pyqtProperty +from qtpy.QtCore import Property from qtvcp import logger # Instantiate the libraries with global reference @@ -124,7 +124,7 @@ def get_pin_name(self): return self._pin_name_ def reset_pin_name(self): self._pin_name_ = '' - pin_name = pyqtProperty(str, get_pin_name, set_pin_name, reset_pin_name) + pin_name = Property(str, get_pin_name, set_pin_name, reset_pin_name) class _HalScaleBase(_HalWidgetBase): def _hal_init(self): @@ -150,7 +150,7 @@ def get_pin_name(self): return self._pin_name_ def reset_pin_name(self): self._pin_name_ = '' - pin_name = pyqtProperty(str, get_pin_name, set_pin_name, reset_pin_name) + pin_name = Property(str, get_pin_name, set_pin_name, reset_pin_name) # reacts to HAL pin changes class _HalSensitiveBase(_HalWidgetBase): @@ -168,5 +168,5 @@ def get_pin_name(self): return self._pin_name_ def reset_pin_name(self): self._pin_name_ = '' - pin_name = pyqtProperty(str, get_pin_name, set_pin_name, reset_pin_name) + pin_name = Property(str, get_pin_name, set_pin_name, reset_pin_name) diff --git a/lib/python/qtvcp/widgets/widget_switcher.py b/lib/python/qtvcp/widgets/widget_switcher.py index 6b551da6141..349b209c84f 100644 --- a/lib/python/qtvcp/widgets/widget_switcher.py +++ b/lib/python/qtvcp/widgets/widget_switcher.py @@ -16,8 +16,8 @@ ################################################################################# -from PyQt5.QtCore import pyqtSignal -from PyQt5.QtWidgets import QStackedWidget, QLayout +from qtpy.QtCore import Signal +from qtpy.QtWidgets import QStackedWidget, QLayout from collections import OrderedDict @@ -32,7 +32,7 @@ # LOG.setLevel(logger.INFO) # One of DEBUG, INFO, WARNING, ERROR, CRITICAL class WidgetSwitcher(QStackedWidget, _HalWidgetBase): - widgetChanged = pyqtSignal(int) + widgetChanged = Signal(int) def __init__(self, parent=None): super(WidgetSwitcher, self).__init__(parent) diff --git a/lib/python/qtvcp/widgets/xembed.py b/lib/python/qtvcp/widgets/xembed.py index 8b4218d5dbb..990705b9359 100644 --- a/lib/python/qtvcp/widgets/xembed.py +++ b/lib/python/qtvcp/widgets/xembed.py @@ -3,9 +3,9 @@ import os import subprocess -from PyQt5.QtCore import QEvent, pyqtProperty -from PyQt5.QtGui import QWindow, QResizeEvent, QMoveEvent -from PyQt5.QtWidgets import QWidget +from qtpy.QtCore import QEvent, Property +from qtpy.QtGui import QWindow, QResizeEvent, QMoveEvent +from qtpy.QtWidgets import QWidget from qtvcp.widgets.widget_baseclass import _HalWidgetBase try: @@ -131,10 +131,10 @@ def get_command(self): def reset_command(self): self.command = None - command_string = pyqtProperty(str, get_command, set_command, reset_command) + command_string = Property(str, get_command, set_command, reset_command) if __name__ == '__main__': - from PyQt5.QtWidgets import QApplication + from qtpy.QtWidgets import QApplication app = QApplication(sys.argv) ex = XEmbed() ex.embed('halcmd loadusr gladevcp --xid ../../gladevcp/offsetpage.glade') diff --git a/nc_files/filtertest-gui.py b/nc_files/filtertest-gui.py index 267cd735090..863960bbb65 100644 --- a/nc_files/filtertest-gui.py +++ b/nc_files/filtertest-gui.py @@ -1,7 +1,7 @@ import sys -from PyQt5.QtWidgets import (QApplication, QDialog, QDialogButtonBox, +from qtpy.QtWidgets import (QApplication, QDialog, QDialogButtonBox, QVBoxLayout,QDialogButtonBox) -from PyQt5.QtCore import QTimer, Qt +from qtpy.QtCore import QTimer, Qt class CustomDialog(QDialog): diff --git a/share/qtvcp/panels/copy/copy_handler.py b/share/qtvcp/panels/copy/copy_handler.py index 9b3a123fd3b..af20127a1b3 100644 --- a/share/qtvcp/panels/copy/copy_handler.py +++ b/share/qtvcp/panels/copy/copy_handler.py @@ -4,9 +4,9 @@ import sys import os import shutil -from PyQt5.QtCore import * -from PyQt5.QtGui import * -from PyQt5.QtWidgets import * +from qtpy.QtCore import * +from qtpy.QtGui import * +from qtpy.QtWidgets import * from qtvcp.widgets.file_manager import FileManager as FM from qtvcp.core import Info ########################################### diff --git a/share/qtvcp/panels/qtplasmac_sim/qtplasmac_sim_handler.py b/share/qtvcp/panels/qtplasmac_sim/qtplasmac_sim_handler.py index ab1c1ae20fe..89727349c6b 100644 --- a/share/qtvcp/panels/qtplasmac_sim/qtplasmac_sim_handler.py +++ b/share/qtvcp/panels/qtplasmac_sim/qtplasmac_sim_handler.py @@ -24,9 +24,9 @@ import sys import hal from subprocess import run as RUN -from PyQt5 import QtCore -from PyQt5.QtGui import QIcon -from PyQt5.QtWidgets import QMessageBox +from qtpy import QtCore +from qtpy.QtGui import QIcon +from qtpy.QtWidgets import QMessageBox from qtvcp.core import Info from qtvcp.lib.preferences import Access diff --git a/share/qtvcp/panels/sim_panel/sim_panel_handler.py b/share/qtvcp/panels/sim_panel/sim_panel_handler.py index e406a5853f1..6ca047ec356 100644 --- a/share/qtvcp/panels/sim_panel/sim_panel_handler.py +++ b/share/qtvcp/panels/sim_panel/sim_panel_handler.py @@ -1,8 +1,8 @@ ############################ # **** IMPORT SECTION **** # ############################ -from PyQt5.QtCore import Qt -from PyQt5.QtWidgets import QWidget +from qtpy.QtCore import Qt +from qtpy.QtWidgets import QWidget from qtvcp.core import Status, Action # Set up logging diff --git a/share/qtvcp/panels/test_button/test_button_handler.py b/share/qtvcp/panels/test_button/test_button_handler.py index 2dafba94a99..1d62716c53e 100644 --- a/share/qtvcp/panels/test_button/test_button_handler.py +++ b/share/qtvcp/panels/test_button/test_button_handler.py @@ -2,9 +2,9 @@ # **** IMPORT SECTION **** # ############################ import sys -from PyQt5.QtCore import * -from PyQt5.QtGui import * -from PyQt5.QtWidgets import * +from qtpy.QtCore import * +from qtpy.QtGui import * +from qtpy.QtWidgets import * from qtvcp.core import Status from qtvcp.widgets.hal_selectionbox import HALSelectionBox from qtvcp.widgets.simple_widgets import PushButton diff --git a/share/qtvcp/panels/test_dial/test_dial_handler.py b/share/qtvcp/panels/test_dial/test_dial_handler.py index 2056f1abb3f..4dd967e3941 100644 --- a/share/qtvcp/panels/test_dial/test_dial_handler.py +++ b/share/qtvcp/panels/test_dial/test_dial_handler.py @@ -2,9 +2,9 @@ # **** IMPORT SECTION **** # ############################ import sys -from PyQt5.QtCore import * -from PyQt5.QtGui import * -from PyQt5.QtWidgets import * +from qtpy.QtCore import * +from qtpy.QtGui import * +from qtpy.QtWidgets import * from qtvcp.core import Status from qtvcp.widgets.simple_widgets import DoubleScale from qtvcp.widgets.hal_selectionbox import HALSelectionBox diff --git a/share/qtvcp/panels/test_led/test_led_handler.py b/share/qtvcp/panels/test_led/test_led_handler.py index b2b1e45cf44..18448164adb 100644 --- a/share/qtvcp/panels/test_led/test_led_handler.py +++ b/share/qtvcp/panels/test_led/test_led_handler.py @@ -2,9 +2,9 @@ # **** IMPORT SECTION **** # ############################ import sys -from PyQt5.QtCore import * -from PyQt5.QtGui import * -from PyQt5.QtWidgets import * +from qtpy.QtCore import * +from qtpy.QtGui import * +from qtpy.QtWidgets import * from qtvcp.core import Status from qtvcp.widgets.hal_selectionbox import HALSelectionBox from qtvcp.widgets.led_widget import LED diff --git a/share/qtvcp/panels/test_panel/test_panel_handler.py b/share/qtvcp/panels/test_panel/test_panel_handler.py index e06a7c25fa6..97aa0a9c198 100644 --- a/share/qtvcp/panels/test_panel/test_panel_handler.py +++ b/share/qtvcp/panels/test_panel/test_panel_handler.py @@ -3,9 +3,9 @@ ############################ import sys import shutil -from PyQt5.QtCore import * -from PyQt5.QtGui import * -from PyQt5.QtWidgets import * +from qtpy.QtCore import * +from qtpy.QtGui import * +from qtpy.QtWidgets import * from qtvcp.core import Status ########################################### # **** instantiate libraries section **** # diff --git a/share/qtvcp/panels/test_probe/test_probe_handler.py b/share/qtvcp/panels/test_probe/test_probe_handler.py index 8044f1df083..b540b91689f 100644 --- a/share/qtvcp/panels/test_probe/test_probe_handler.py +++ b/share/qtvcp/panels/test_probe/test_probe_handler.py @@ -1,7 +1,7 @@ ############################ # **** IMPORT SECTION **** # ############################ -from PyQt5.QtCore import Qt +from qtpy.QtCore import Qt from qtvcp.core import Status, Action diff --git a/share/qtvcp/panels/tool_dialog/tool_dialog_handler.py b/share/qtvcp/panels/tool_dialog/tool_dialog_handler.py index 305477dc451..30d74ac1aba 100644 --- a/share/qtvcp/panels/tool_dialog/tool_dialog_handler.py +++ b/share/qtvcp/panels/tool_dialog/tool_dialog_handler.py @@ -1,7 +1,7 @@ ############################ # **** IMPORT SECTION **** # ############################ -from PyQt5.QtWidgets import (QMessageBox) +from qtpy.QtWidgets import (QMessageBox) from qtvcp.core import Status, Action # Set up logging diff --git a/share/qtvcp/panels/vismach_5axis_gantry/vismach_5axis_gantry_handler.py b/share/qtvcp/panels/vismach_5axis_gantry/vismach_5axis_gantry_handler.py index b1f6793f2f7..6196e0adb47 100644 --- a/share/qtvcp/panels/vismach_5axis_gantry/vismach_5axis_gantry_handler.py +++ b/share/qtvcp/panels/vismach_5axis_gantry/vismach_5axis_gantry_handler.py @@ -2,9 +2,9 @@ # **** IMPORT SECTION **** # ############################ import sys -from PyQt5.QtCore import * -from PyQt5.QtGui import * -from PyQt5.QtWidgets import * +from qtpy.QtCore import * +from qtpy.QtGui import * +from qtpy.QtWidgets import * from qtvcp.core import Status from qtvcp.lib.qt_vismach import gantry_5axis as MILL diff --git a/share/qtvcp/panels/vismach_fanuc_200f/vismach_fanuc_200f_handler.py b/share/qtvcp/panels/vismach_fanuc_200f/vismach_fanuc_200f_handler.py index b4ca1efc826..148c08b3a92 100644 --- a/share/qtvcp/panels/vismach_fanuc_200f/vismach_fanuc_200f_handler.py +++ b/share/qtvcp/panels/vismach_fanuc_200f/vismach_fanuc_200f_handler.py @@ -2,9 +2,9 @@ # **** IMPORT SECTION **** # ############################ import sys -from PyQt5.QtCore import * -from PyQt5.QtGui import * -from PyQt5.QtWidgets import * +from qtpy.QtCore import * +from qtpy.QtGui import * +from qtpy.QtWidgets import * from qtvcp.core import Status from qtvcp.lib.qt_vismach import fanuc_200f as Robot diff --git a/share/qtvcp/panels/vismach_mill_xyz/vismach_mill_xyz_handler.py b/share/qtvcp/panels/vismach_mill_xyz/vismach_mill_xyz_handler.py index e983c2d1aa6..0009d98f64d 100644 --- a/share/qtvcp/panels/vismach_mill_xyz/vismach_mill_xyz_handler.py +++ b/share/qtvcp/panels/vismach_mill_xyz/vismach_mill_xyz_handler.py @@ -2,9 +2,9 @@ # **** IMPORT SECTION **** # ############################ import sys -from PyQt5.QtCore import * -from PyQt5.QtGui import * -from PyQt5.QtWidgets import * +from qtpy.QtCore import * +from qtpy.QtGui import * +from qtpy.QtWidgets import * from qtvcp.core import Status from qtvcp.lib.qt_vismach import mill_xyz as MILL diff --git a/share/qtvcp/panels/vismach_millturn/vismach_millturn_handler.py b/share/qtvcp/panels/vismach_millturn/vismach_millturn_handler.py index 1ba4504e2d8..4f739133fae 100644 --- a/share/qtvcp/panels/vismach_millturn/vismach_millturn_handler.py +++ b/share/qtvcp/panels/vismach_millturn/vismach_millturn_handler.py @@ -2,9 +2,9 @@ # **** IMPORT SECTION **** # ############################ import sys -from PyQt5.QtCore import * -from PyQt5.QtGui import * -from PyQt5.QtWidgets import * +from qtpy.QtCore import * +from qtpy.QtGui import * +from qtpy.QtWidgets import * from qtvcp.core import Status from qtvcp.lib.qt_vismach import millturn as MILL diff --git a/share/qtvcp/panels/vismach_router_atc/vismach_router_atc_handler.py b/share/qtvcp/panels/vismach_router_atc/vismach_router_atc_handler.py index 36393763ac1..20f62320160 100644 --- a/share/qtvcp/panels/vismach_router_atc/vismach_router_atc_handler.py +++ b/share/qtvcp/panels/vismach_router_atc/vismach_router_atc_handler.py @@ -3,9 +3,9 @@ ############################ import sys import os -from PyQt5.QtCore import * -from PyQt5.QtGui import * -from PyQt5.QtWidgets import * +from qtpy.QtCore import * +from qtpy.QtGui import * +from qtpy.QtWidgets import * from qtvcp.core import Status, Path from qtvcp.lib.qt_vismach.qt_vismach import * diff --git a/share/qtvcp/panels/vismach_scara/vismach_scara_handler.py b/share/qtvcp/panels/vismach_scara/vismach_scara_handler.py index ea2c781b9cc..a8c4f400124 100644 --- a/share/qtvcp/panels/vismach_scara/vismach_scara_handler.py +++ b/share/qtvcp/panels/vismach_scara/vismach_scara_handler.py @@ -2,9 +2,9 @@ # **** IMPORT SECTION **** # ############################ import sys -from PyQt5.QtCore import * -from PyQt5.QtGui import * -from PyQt5.QtWidgets import * +from qtpy.QtCore import * +from qtpy.QtGui import * +from qtpy.QtWidgets import * from qtvcp.core import Status from qtvcp.lib.qt_vismach import scara as SCARA diff --git a/share/qtvcp/screens/blender/blender_handler.py b/share/qtvcp/screens/blender/blender_handler.py index 2ddcec801af..8cc652123e9 100644 --- a/share/qtvcp/screens/blender/blender_handler.py +++ b/share/qtvcp/screens/blender/blender_handler.py @@ -5,7 +5,7 @@ import os import linuxcnc -from PyQt5 import QtCore, QtWidgets +from qtpy import QtCore, QtWidgets from qtvcp.widgets.origin_offsetview import OriginOffsetView as OFFVIEW_WIDGET from qtvcp.widgets.dialog_widget import CamViewDialog as CAMVIEW diff --git a/share/qtvcp/screens/qt_cnc/qt_cnc_handler.py b/share/qtvcp/screens/qt_cnc/qt_cnc_handler.py index 929ed1d5b66..02a3c16f0c3 100644 --- a/share/qtvcp/screens/qt_cnc/qt_cnc_handler.py +++ b/share/qtvcp/screens/qt_cnc/qt_cnc_handler.py @@ -5,7 +5,7 @@ import os import linuxcnc -from PyQt5 import QtCore, QtWidgets +from qtpy import QtCore, QtWidgets from qtvcp.widgets.mdi_line import MDILine as MDI_WIDGET from qtvcp.widgets.gcode_editor import GcodeEditor as GCODE diff --git a/share/qtvcp/screens/qt_cnc_800x600/qt_cnc_800x600_handler.py b/share/qtvcp/screens/qt_cnc_800x600/qt_cnc_800x600_handler.py index 7d9d9b2b312..99df933b187 100644 --- a/share/qtvcp/screens/qt_cnc_800x600/qt_cnc_800x600_handler.py +++ b/share/qtvcp/screens/qt_cnc_800x600/qt_cnc_800x600_handler.py @@ -2,9 +2,9 @@ # **** IMPORT SECTION **** # ############################ -from PyQt5 import QtCore -from PyQt5 import QtWidgets -from PyQt5 import QtGui +from qtpy import QtCore +from qtpy import QtWidgets +from qtpy import QtGui from qtvcp.lib.keybindings import Keylookup from qtvcp.lib.aux_program_loader import Aux_program_loader from qtvcp.lib.notify import Notify diff --git a/share/qtvcp/screens/qt_cnc_9_axis/qt_cnc_9_axis_handler.py b/share/qtvcp/screens/qt_cnc_9_axis/qt_cnc_9_axis_handler.py index 099756a0475..0c8b5f1e6b6 100644 --- a/share/qtvcp/screens/qt_cnc_9_axis/qt_cnc_9_axis_handler.py +++ b/share/qtvcp/screens/qt_cnc_9_axis/qt_cnc_9_axis_handler.py @@ -5,7 +5,7 @@ import os import linuxcnc -from PyQt5 import QtCore, QtWidgets +from qtpy import QtCore, QtWidgets from qtvcp.widgets.origin_offsetview import OriginOffsetView as OFFVIEW_WIDGET from qtvcp.widgets.tool_offsetview import ToolOffsetView as TOOLVIEW_WIDGET diff --git a/share/qtvcp/screens/qtaxis/qtaxis_handler.py b/share/qtvcp/screens/qtaxis/qtaxis_handler.py index efa8f026ed4..0f447aca9ab 100644 --- a/share/qtvcp/screens/qtaxis/qtaxis_handler.py +++ b/share/qtvcp/screens/qtaxis/qtaxis_handler.py @@ -5,8 +5,8 @@ import os import linuxcnc -from PyQt5 import QtCore, QtWidgets -from PyQt5.QtGui import QColor +from qtpy import QtCore, QtWidgets +from qtpy.QtGui import QColor from qtvcp.widgets.mdi_line import MDILine as MDI_WIDGET from qtvcp.widgets.mdi_history import MDIHistory as MDI_HISTORY diff --git a/share/qtvcp/screens/qtdragon/qtdragon_handler.py b/share/qtvcp/screens/qtdragon/qtdragon_handler.py index 4bb3e2e4932..52cd316de38 100644 --- a/share/qtvcp/screens/qtdragon/qtdragon_handler.py +++ b/share/qtvcp/screens/qtdragon/qtdragon_handler.py @@ -1,8 +1,8 @@ import os, time -from PyQt5 import QtCore, QtWidgets, QtGui -from PyQt5.QtWidgets import QAction, QMenu -from PyQt5.QtGui import QIcon -from PyQt5.QtCore import QCoreApplication +from qtpy import QtCore, QtWidgets, QtGui +from qtpy.QtWidgets import QAction, QMenu +from qtpy.QtGui import QIcon +from qtpy.QtCore import QCoreApplication from qtvcp.widgets.gcode_editor import GcodeEditor as GCODE from qtvcp.widgets.gcode_graphics import GCodeGraphics as GRAPHICS from qtvcp.widgets.mdi_line import MDILine as MDI_WIDGET @@ -31,7 +31,7 @@ QHAL = Qhal() try: - from PyQt5.QtWebEngineWidgets import QWebEnginePage + from qtpy.QtWebEngineWidgets import QWebEnginePage except: LOG.warning('QtDragon Warning with loading QtWebEngineWidget - is python3-pyqt5.qtwebengine installed?') diff --git a/share/qtvcp/screens/qtdragon_hd/qtdragon_hd_handler.py b/share/qtvcp/screens/qtdragon_hd/qtdragon_hd_handler.py index 907457f279e..8fe8ac60ddc 100644 --- a/share/qtvcp/screens/qtdragon_hd/qtdragon_hd_handler.py +++ b/share/qtvcp/screens/qtdragon_hd/qtdragon_hd_handler.py @@ -1,8 +1,8 @@ import os, time -from PyQt5 import QtCore, QtWidgets, QtGui -from PyQt5.QtWidgets import QAction, QMenu -from PyQt5.QtGui import QIcon -from PyQt5.QtCore import QCoreApplication +from qtpy import QtCore, QtWidgets, QtGui +from qtpy.QtWidgets import QAction, QMenu +from qtpy.QtGui import QIcon +from qtpy.QtCore import QCoreApplication from qtvcp.widgets.gcode_editor import GcodeEditor as GCODE from qtvcp.widgets.gcode_graphics import GCodeGraphics as GRAPHICS from qtvcp.widgets.mdi_line import MDILine as MDI_WIDGET @@ -35,7 +35,7 @@ QHAL = Qhal() try: - from PyQt5.QtWebEngineWidgets import QWebEnginePage + from qtpy.QtWebEngineWidgets import QWebEnginePage except: LOG.warning('QtDragon warning with loading QtWebEngineWidget - is python3-pyqt5.qtwebengine installed?') diff --git a/share/qtvcp/screens/qtdragon_hd_vert/qtdragon_hd_vert_handler.py b/share/qtvcp/screens/qtdragon_hd_vert/qtdragon_hd_vert_handler.py index a9227bebcfc..edd86cb4d94 100644 --- a/share/qtvcp/screens/qtdragon_hd_vert/qtdragon_hd_vert_handler.py +++ b/share/qtvcp/screens/qtdragon_hd_vert/qtdragon_hd_vert_handler.py @@ -1,8 +1,8 @@ import os, time -from PyQt5 import QtCore, QtWidgets, QtGui -from PyQt5.QtWidgets import QAction, QMenu -from PyQt5.QtGui import QIcon -from PyQt5.QtCore import QCoreApplication +from qtpy import QtCore, QtWidgets, QtGui +from qtpy.QtWidgets import QAction, QMenu +from qtpy.QtGui import QIcon +from qtpy.QtCore import QCoreApplication from qtvcp.widgets.gcode_editor import GcodeEditor as GCODE from qtvcp.widgets.gcode_graphics import GCodeGraphics as GRAPHICS from qtvcp.widgets.mdi_line import MDILine as MDI_WIDGET @@ -35,7 +35,7 @@ QHAL = Qhal() try: - from PyQt5.QtWebEngineWidgets import QWebEnginePage + from qtpy.QtWebEngineWidgets import QWebEnginePage except: LOG.warning('QtDragon warning with loading QtWebEngineWidget - is python3-pyqt5.qtwebengine installed?') diff --git a/share/qtvcp/screens/qtdragon_lathe/qtdragon_lathe_handler.py b/share/qtvcp/screens/qtdragon_lathe/qtdragon_lathe_handler.py index 546002233f8..0050ef0b18d 100644 --- a/share/qtvcp/screens/qtdragon_lathe/qtdragon_lathe_handler.py +++ b/share/qtvcp/screens/qtdragon_lathe/qtdragon_lathe_handler.py @@ -1,8 +1,8 @@ import os, time -from PyQt5 import QtCore, QtWidgets, QtGui -from PyQt5.QtWidgets import QAction, QMenu -from PyQt5.QtGui import QIcon -from PyQt5.QtCore import QCoreApplication +from qtpy import QtCore, QtWidgets, QtGui +from qtpy.QtWidgets import QAction, QMenu +from qtpy.QtGui import QIcon +from qtpy.QtCore import QCoreApplication from qtvcp.widgets.gcode_editor import GcodeEditor as GCODE from qtvcp.widgets.gcode_graphics import GCodeGraphics as GRAPHICS from qtvcp.widgets.mdi_line import MDILine as MDI_WIDGET @@ -31,7 +31,7 @@ QHAL = Qhal() try: - from PyQt5.QtWebEngineWidgets import QWebEnginePage + from qtpy.QtWebEngineWidgets import QWebEnginePage except: LOG.warning('QtDragon Warning with loading QtWebEngineWidget - is python3-pyqt5.qtwebengine installed?') diff --git a/share/qtvcp/screens/qtlathe/qtlathe_handler.py b/share/qtvcp/screens/qtlathe/qtlathe_handler.py index 7f4b8f4ffcd..d2559e31eca 100644 --- a/share/qtvcp/screens/qtlathe/qtlathe_handler.py +++ b/share/qtvcp/screens/qtlathe/qtlathe_handler.py @@ -6,7 +6,7 @@ import linuxcnc import hal -from PyQt5 import QtCore, QtWidgets +from qtpy import QtCore, QtWidgets from qtvcp.widgets.mdi_line import MDILine as MDI_WIDGET from qtvcp.widgets.gcode_editor import GcodeEditor as GCODE diff --git a/share/qtvcp/screens/qtplasmac/languages/qtplasmac.py b/share/qtvcp/screens/qtplasmac/languages/qtplasmac.py index 7b237582e04..8634819df43 100644 --- a/share/qtvcp/screens/qtplasmac/languages/qtplasmac.py +++ b/share/qtvcp/screens/qtplasmac/languages/qtplasmac.py @@ -8,7 +8,7 @@ # run again. Do not edit this file unless you know what you are doing. -from PyQt5 import QtCore, QtGui, QtWidgets +from qtpy import QtCore, QtGui, QtWidgets class Ui_MainWindow(object): diff --git a/share/qtvcp/screens/qtplasmac/qtplasmac_handler.py b/share/qtvcp/screens/qtplasmac/qtplasmac_handler.py index f5a35148c2a..8986e6d930e 100644 --- a/share/qtvcp/screens/qtplasmac/qtplasmac_handler.py +++ b/share/qtvcp/screens/qtplasmac/qtplasmac_handler.py @@ -36,13 +36,18 @@ import linuxcnc import hal from OpenGL.GL import glTranslatef -from PyQt5 import QtCore, QtWidgets, QtGui -from PyQt5.QtCore import * -from PyQt5.QtWidgets import * -from PyQt5.QtGui import * -from PyQt5.Qsci import QsciScintilla +from qtpy import QtCore, QtWidgets, QtGui +from qtpy.QtCore import * +from qtpy.QtWidgets import * +from qtpy.QtGui import * +from qtpy.Qsci import QsciScintilla from qtvcp import logger from qtvcp.core import Status, Action, Info, Tool +try: + from qtpy.QtWebEngineWidgets import QWebEngineView as _QWebEngineView + _WEBENGINE_AVAILABLE = True +except Exception: + _WEBENGINE_AVAILABLE = False from qtvcp.lib.gcodes import GCodes from qtvcp.lib.keybindings import Keylookup from qtvcp.lib.preferences import Access @@ -94,7 +99,7 @@ class ColorError(Exception): # click signal for some labels def click_signal(widget): class Filter(QObject): - clicked = pyqtSignal() + clicked = Signal() def eventFilter(self, obj, event): if obj == widget: @@ -4107,7 +4112,7 @@ def user_button_setup(self): elif code == 'user-manual': self.umButton = f'button_{bNum}' self.interlockRules[self.umButton] = self.interlockRules['user-manual_template'].copy() - if util.find_spec("PyQt5.QtWebEngineWidgets") is not None: + if _WEBENGINE_AVAILABLE: self.w.webview.page().loadFinished.connect(self.style_user_manual) self.w.webview.page().setBackgroundColor(QColor(self.backColor)) else: @@ -5945,7 +5950,7 @@ def openColorDialog(self, widget): self.set_basic_colors() self.set_color_styles() self.preview_stack_changed() - if self.umButton and util.find_spec("PyQt5.QtWebEngineWidgets") is not None: + if self.umButton and _WEBENGINE_AVAILABLE: self.w.webview.page().loadFinished.connect(self.style_user_manual) self.w.webview.page().setBackgroundColor(QColor(self.backColor)) self.w.webview.reload() diff --git a/share/qtvcp/screens/qttouchy/qttouchy_handler.py b/share/qtvcp/screens/qttouchy/qttouchy_handler.py index 7ce91b26536..e52e74a08f3 100644 --- a/share/qtvcp/screens/qttouchy/qttouchy_handler.py +++ b/share/qtvcp/screens/qttouchy/qttouchy_handler.py @@ -5,7 +5,7 @@ import os import linuxcnc -from PyQt5 import QtCore, QtWidgets, QtGui +from qtpy import QtCore, QtWidgets, QtGui from qtvcp.widgets.mdi_line import MDILine as MDI_WIDGET from qtvcp.widgets.gcode_editor import GcodeEditor as GCODE diff --git a/share/qtvcp/screens/tester/tester_handler.py b/share/qtvcp/screens/tester/tester_handler.py index de16a88d675..c9e8c9037db 100644 --- a/share/qtvcp/screens/tester/tester_handler.py +++ b/share/qtvcp/screens/tester/tester_handler.py @@ -5,7 +5,7 @@ import os import linuxcnc -from PyQt5 import QtCore, QtWidgets +from qtpy import QtCore, QtWidgets from qtvcp.widgets.mdi_line import MDILine as MDI_WIDGET from qtvcp.widgets.gcode_editor import GcodeEditor as GCODE diff --git a/share/qtvcp/screens/woodpecker/woodpecker_handler.py b/share/qtvcp/screens/woodpecker/woodpecker_handler.py index 07c03281108..c1c9126ab70 100644 --- a/share/qtvcp/screens/woodpecker/woodpecker_handler.py +++ b/share/qtvcp/screens/woodpecker/woodpecker_handler.py @@ -2,8 +2,8 @@ import linuxcnc import hal import sys -from PyQt5.QtWidgets import QMessageBox -from PyQt5 import QtCore, QtWidgets, QtGui, uic +from qtpy.QtWidgets import QMessageBox +from qtpy import QtCore, QtWidgets, QtGui, uic from qtvcp.widgets.gcode_editor import GcodeEditor as GCODE from qtvcp.widgets.mdi_line import MDILine as MDI_WIDGET from qtvcp.widgets.tool_offsetview import ToolOffsetView as TOOL_TABLE diff --git a/share/qtvcp/screens/x1mill/x1mill_handler.py b/share/qtvcp/screens/x1mill/x1mill_handler.py index 02d8313a026..719583c89cc 100644 --- a/share/qtvcp/screens/x1mill/x1mill_handler.py +++ b/share/qtvcp/screens/x1mill/x1mill_handler.py @@ -5,7 +5,7 @@ import os import linuxcnc -from PyQt5 import QtCore, QtWidgets +from qtpy import QtCore, QtWidgets from qtvcp.widgets.mdi_line import MDILine as MDI_WIDGET from qtvcp.widgets.gcode_editor import GcodeEditor as GCODE diff --git a/src/emc/usr_intf/gremlin/qt5_graphics.py b/src/emc/usr_intf/gremlin/qt5_graphics.py index 1613419507f..151c1ba298f 100644 --- a/src/emc/usr_intf/gremlin/qt5_graphics.py +++ b/src/emc/usr_intf/gremlin/qt5_graphics.py @@ -8,9 +8,9 @@ from qtvcp import logger LOG = logger.getLogger(__name__) -from PyQt5.QtCore import pyqtProperty, pyqtSignal, QSize, Qt, QTimer -from PyQt5.QtGui import QColor -from PyQt5.QtWidgets import (QApplication, QHBoxLayout, QSlider, +from qtpy.QtCore import Property, Signal, QSize, Qt, QTimer +from qtpy.QtGui import QColor +from qtpy.QtWidgets import (QApplication, QHBoxLayout, QSlider, QWidget, QOpenGLWidget) LIB_GOOD = True @@ -178,10 +178,10 @@ def output_notify_message(self, message): # widget for graphics plotting ############################### class Lcnc_3dGraphics(QOpenGLWidget, glcanon.GlCanonDraw, glnav.GlNavBase): - percentLoaded = pyqtSignal(int) - xRotationChanged = pyqtSignal(int) - yRotationChanged = pyqtSignal(int) - zRotationChanged = pyqtSignal(int) + percentLoaded = Signal(int) + xRotationChanged = Signal(int) + yRotationChanged = Signal(int) + zRotationChanged = Signal(int) rotation_vectors = [(1.,0.,0.), (0., 0., 1.)] def __init__(self, parent=None): @@ -1295,7 +1295,7 @@ def getfont(self): return self._font def resetfont(self): self._font = 'monospace bold 16' - dro_font = pyqtProperty(str, getfont, setfont, resetfont) + dro_font = Property(str, getfont, setfont, resetfont) def setfontlarge(self, font): self._fontLarge = font @@ -1304,7 +1304,7 @@ def getfontlarge(self): return self._fontLarge def resetfontlarge(self): self._fontLarge = 'monospace bold 22' - dro_large_font = pyqtProperty(str, getfontlarge, setfontlarge, resetfontlarge) + dro_large_font = Property(str, getfontlarge, setfontlarge, resetfontlarge) ########### # Testing diff --git a/src/emc/usr_intf/qtplasmac/pmx485-test.py b/src/emc/usr_intf/qtplasmac/pmx485-test.py index 66b333d5a8e..1556add41f7 100755 --- a/src/emc/usr_intf/qtplasmac/pmx485-test.py +++ b/src/emc/usr_intf/qtplasmac/pmx485-test.py @@ -22,9 +22,9 @@ import os import sys -from PyQt5.QtGui import * -from PyQt5.QtWidgets import * -from PyQt5.QtCore import * +from qtpy.QtGui import * +from qtpy.QtWidgets import * +from qtpy.QtCore import * try: import serial diff --git a/src/emc/usr_intf/qtplasmac/qtplasmac-materials.py b/src/emc/usr_intf/qtplasmac/qtplasmac-materials.py index 0be62bc9b0f..106b8db530a 100755 --- a/src/emc/usr_intf/qtplasmac/qtplasmac-materials.py +++ b/src/emc/usr_intf/qtplasmac/qtplasmac-materials.py @@ -22,9 +22,9 @@ import os import sys -from PyQt5.QtCore import * -from PyQt5.QtWidgets import * -from PyQt5.QtGui import * +from qtpy.QtCore import * +from qtpy.QtWidgets import * +from qtpy.QtGui import * class MaterialConverter(QMainWindow, object): diff --git a/src/emc/usr_intf/qtplasmac/qtplasmac_gcode.py b/src/emc/usr_intf/qtplasmac/qtplasmac_gcode.py index 866069e9617..481d39c4382 100755 --- a/src/emc/usr_intf/qtplasmac/qtplasmac_gcode.py +++ b/src/emc/usr_intf/qtplasmac/qtplasmac_gcode.py @@ -36,9 +36,9 @@ from tkinter import Tk, Label, Text, Scrollbar, Button GUI = 'axis' else: - from PyQt5.QtCore import Qt - from PyQt5.QtGui import QIcon - from PyQt5.QtWidgets import QApplication, QDialog, QScrollArea, QWidget, QVBoxLayout, QLabel, QPushButton, QStyle, QFrame + from qtpy.QtCore import Qt + from qtpy.QtGui import QIcon + from qtpy.QtWidgets import QApplication, QDialog, QScrollArea, QWidget, QVBoxLayout, QLabel, QPushButton, QStyle, QFrame GUI = 'qtplasmac' class Filter(): diff --git a/src/emc/usr_intf/qtvcp/qtvcp.py b/src/emc/usr_intf/qtvcp/qtvcp.py index d496d4ed161..371e848e287 100644 --- a/src/emc/usr_intf/qtvcp/qtvcp.py +++ b/src/emc/usr_intf/qtvcp/qtvcp.py @@ -9,13 +9,13 @@ import subprocess from optparse import Option, OptionParser -from PyQt5 import QtWidgets, QtCore, QtGui +from qtpy import QtWidgets, QtCore, QtGui try: - from PyQt5.QtWebEngineWidgets import QWebEngineView as QWebView + from qtpy.QtWebEngineWidgets import QWebEngineView as QWebView except: try: - from PyQt5.QtWebKitWidgets import QWebView + from qtpy.QtWebKitWidgets import QWebView except: print('Qtvcp Error with loading webView - is python3-pyqt5.qtwebengine installed?') @@ -53,10 +53,10 @@ , help='pass USEROPTS strings to handler under self.w.USEROPTIONS_ list variable') ] -from PyQt5.QtCore import QObject, QEvent, pyqtSignal +from qtpy.QtCore import QObject, QEvent, Signal class inputFocusFilter(QObject): - focusIn = pyqtSignal(object) + focusIn = Signal(object) def eventFilter(self, widget, event): if event.type() == QEvent.FocusIn and not isinstance(widget,QtWidgets.QCommonStyle): diff --git a/src/hal/user_comps/hal_bridge.py b/src/hal/user_comps/hal_bridge.py index 80fa4fe557c..8aac603f4ac 100644 --- a/src/hal/user_comps/hal_bridge.py +++ b/src/hal/user_comps/hal_bridge.py @@ -8,7 +8,7 @@ import signal import hal -from PyQt5 import QtCore +from qtpy import QtCore from qtvcp.qt_halobjects import Qhal from common.iniinfo import _IStat as IStatParent from common import logger @@ -227,7 +227,7 @@ def __setitem__(self, item, value): if __name__ == "__main__": import sys import getopt - from PyQt5.QtWidgets import QApplication + from qtpy.QtWidgets import QApplication letters = 'dh' # the : means an argument needs to be passed after the letter keywords = ['readport=', 'writeport=' ] # the = means that a value is expected after