From 86045c1c66c1771c8235ddfe22f1a6c575d878ef Mon Sep 17 00:00:00 2001 From: Jarrett Date: Fri, 1 Sep 2017 09:24:36 -0700 Subject: [PATCH 1/4] Fixed VisVis hardcoding PyQt4 dependencies --- pyforms/gui/Controls/ControlVisVis.py | 29 +++++++++++++++------------ 1 file changed, 16 insertions(+), 13 deletions(-) diff --git a/pyforms/gui/Controls/ControlVisVis.py b/pyforms/gui/Controls/ControlVisVis.py index a0d9577..9e7f906 100755 --- a/pyforms/gui/Controls/ControlVisVis.py +++ b/pyforms/gui/Controls/ControlVisVis.py @@ -1,19 +1,19 @@ #!/usr/bin/python # -*- coding: utf-8 -*- -__author__ = "Ricardo Ribeiro" -__credits__ = ["Ricardo Ribeiro"] -__license__ = "MIT" -__version__ = "0.0" -__maintainer__ = "Ricardo Ribeiro" -__email__ = "ricardojvr@gmail.com" -__status__ = "Development" +__author__ = "Ricardo Ribeiro" +__credits__ = ["Ricardo Ribeiro"] +__license__ = "MIT" +__version__ = "0.0" +__maintainer__ = "Ricardo Ribeiro" +__email__ = "ricardojvr@gmail.com" +__status__ = "Development" import pyforms.utils.tools as tools from pyforms.gui.Controls.ControlBase import ControlBase -from visvis import Point, Pointset +from visvis import Point, Pointset import visvis as vv import numpy as np @@ -27,9 +27,9 @@ class ControlVisVis(ControlBase): - def init_form(self): - self._form = QtGui.QWidget() - layout = QtGui.QVBoxLayout() + def init_form(self): + self._form = QWidget() + layout = QVBoxLayout() if conf.PYFORMS_USE_QT5: layout.setContentsMargins(0,0,0,0) @@ -37,13 +37,16 @@ def init_form(self): layout.setMargin(0) self._form.setLayout( layout ) - self._app = vv.use('pyqt4') + if conf.PYFORMS_USE_QT5: + self._app = vv.use('pyqt5') + else: + self._app = vv.use('pyqt4') self._app.Create() Figure = self._app.GetFigureClass() self._fig = Figure(self._form) - policy = QtGui.QSizePolicy(QtGui.QSizePolicy.Expanding, QtGui.QSizePolicy.Expanding) + policy = QSizePolicy(QSizePolicy.Expanding, QSizePolicy.Expanding) widget = self._fig._widget widget.setSizePolicy(policy) From 8a2aea964e571a10be6e9e5ccd62696e3fc2afa3 Mon Sep 17 00:00:00 2001 From: Jarrett Date: Fri, 1 Sep 2017 16:03:09 -0700 Subject: [PATCH 2/4] Line properties with multiple datasets --- pyforms/gui/Controls/ControlVisVis.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/pyforms/gui/Controls/ControlVisVis.py b/pyforms/gui/Controls/ControlVisVis.py index 9e7f906..7c96f41 100755 --- a/pyforms/gui/Controls/ControlVisVis.py +++ b/pyforms/gui/Controls/ControlVisVis.py @@ -64,6 +64,7 @@ def paint(self, visvis): vv.clf() colors = ['r','g','b','c','m','y','k'] + print(self._value) for index, dataset in enumerate(self._value): l = visvis.plot(dataset, ms='o', mc=colors[ index % len(colors) ], mw='3', ls='', mew=0 ) l.alpha = 0.3 @@ -121,4 +122,4 @@ def value(self, value): self._value.append( dataset ) self.refresh() - + \ No newline at end of file From 183a9dd743a6b0e4d0ff4a41006469495cf78746 Mon Sep 17 00:00:00 2001 From: Jarrett Date: Fri, 1 Sep 2017 17:39:42 -0700 Subject: [PATCH 3/4] Line properties with multiple datasets --- pyforms/gui/Controls/ControlVisVis.py | 42 ++++++++++++++++++++++----- 1 file changed, 34 insertions(+), 8 deletions(-) diff --git a/pyforms/gui/Controls/ControlVisVis.py b/pyforms/gui/Controls/ControlVisVis.py index 7c96f41..41a33c7 100755 --- a/pyforms/gui/Controls/ControlVisVis.py +++ b/pyforms/gui/Controls/ControlVisVis.py @@ -19,6 +19,8 @@ from pysettings import conf +conf.PYFORMS_USE_QT5 = True + if conf.PYFORMS_USE_QT5: from PyQt5.QtWidgets import QWidget, QVBoxLayout, QSizePolicy else: @@ -27,6 +29,18 @@ class ControlVisVis(ControlBase): + def __init__(self, label='', default=None, helptext=None, linepropertydefault=None): + super(self.__class__, self).__init__(label, default, helptext) + + #https://github.com/almarklein/visvis/wiki/functions#plot + if linepropertydefault is None: + self._linepropertydefault = {'ms': 'o', 'mc': 'r', 'mw': '3', 'ls': '', 'mew': 0 } + else: + self._linepropertydefault = linepropertydefault + + self._lineproperty = None + + def init_form(self): self._form = QWidget() layout = QVBoxLayout() @@ -37,10 +51,7 @@ def init_form(self): layout.setMargin(0) self._form.setLayout( layout ) - if conf.PYFORMS_USE_QT5: - self._app = vv.use('pyqt5') - else: - self._app = vv.use('pyqt4') + self._app = vv.use('pyqt5') self._app.Create() Figure = self._app.GetFigureClass() @@ -63,10 +74,15 @@ def refresh(self): def paint(self, visvis): vv.clf() - colors = ['r','g','b','c','m','y','k'] - print(self._value) for index, dataset in enumerate(self._value): - l = visvis.plot(dataset, ms='o', mc=colors[ index % len(colors) ], mw='3', ls='', mew=0 ) + + if self._lineproperty is None: + l = visvis.plot(dataset, **self._linepropertydefault) + else: + try: + l = visvis.plot(dataset, **self._lineproperty[index]) + except: + l = visvis.plot(dataset, **self._linepropertydefault) l.alpha = 0.3 self._a = vv.gca() @@ -122,4 +138,14 @@ def value(self, value): self._value.append( dataset ) self.refresh() - \ No newline at end of file + + @value.setter + def lineproperty(self, value): + self._lineproperty = [] + for dataset in value: + if len(dataset)>0: + if isinstance(dataset, dict) : + self._lineproperty.append(dataset) + + self.refresh() + From 9d47261df457ada9e08f0fa3e9dfdf7efe7017a6 Mon Sep 17 00:00:00 2001 From: JarrettR Date: Fri, 1 Sep 2017 18:32:59 -0700 Subject: [PATCH 4/4] Removed local pyconf fix from master --- pyforms/gui/Controls/ControlVisVis.py | 2 -- 1 file changed, 2 deletions(-) diff --git a/pyforms/gui/Controls/ControlVisVis.py b/pyforms/gui/Controls/ControlVisVis.py index 41a33c7..c143870 100755 --- a/pyforms/gui/Controls/ControlVisVis.py +++ b/pyforms/gui/Controls/ControlVisVis.py @@ -19,8 +19,6 @@ from pysettings import conf -conf.PYFORMS_USE_QT5 = True - if conf.PYFORMS_USE_QT5: from PyQt5.QtWidgets import QWidget, QVBoxLayout, QSizePolicy else: