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