Skip to content
Snippets Groups Projects
Commit 783de736 authored by Benjamin Jakimow's avatar Benjamin Jakimow
Browse files

plotstylewidget.ui, plotstyling.py

parent 26caeb8f
No related branches found
No related tags found
No related merge requests found
import os
from qgis.core import *
from qgis.gui import *
from PyQt4.QtCore import *
from PyQt4.QtGui import *
import numpy as np
from timeseriesviewer import *
from timeseriesviewer.utils import *
from timeseriesviewer.ui.widgets import loadUIFormClass
import pyqtgraph as pg
load = lambda p : loadUIFormClass(jp(DIR_UI,p))
class PlotStyle(object):
def __init__(self, **kwds):
self.symbol = 'o'
self.symbolBrush = QColor('green')
self.symbolPen = 'w'
self.symbolSize = 8
class PlotStyleWidget(QWidget, load('plotstylewidget.ui')):
sigPlotStyleChanged = pyqtSignal(PlotStyle)
def __init__(self, title='<#>', parent=None):
super(PlotStyleWidget, self).__init__(parent)
self.setupUi(self)
assert isinstance(self.plotWidget, pg.PlotWidget)
self.plotWidget.disableAutoRange()
self.plotWidget.setAspectLocked()
self.plotWidget.setLimits(xMin=0, xMax=2, yMin=0, yMax=2)
self.plotWidget.setMouseEnabled(x=False, y=False)
self.plotWidget.disableAutoRange()
self.plotItem = self.plotWidget.plot()
self.plotItem.setData(x=[0.25, 0.5, 0.75], y=[0.25, 0.75, 0.5])
#self.plotWidget.setCentralItem(self.plotItem)
self.plotWidget.disableAutoRange()
self.lastStyle = PlotStyle()
self.setPlotStyle(self.lastStyle)
def refreshPlotStylePreview(self, *args):
style = self.plotStyle()
#todo: set style to style preview
self.sigPlotStyleChanged.emit(style)
def setPlotStyle(self, style):
assert isinstance(style, PlotStyle)
self.plotItem.setData(symbol=style.symbol, symbolBrush=style.symbolBrush,
symbolPen=style.symbolPen, symbolSize=style.symbolSize)
self.plotItem.update()
self.plotWidget.update()
def plotStyle(self):
style = PlotStyle()
#todo: read plotstyle values from widgets
return style
class PlotStyleDialog(QgsDialog):
@staticmethod
def getPlotStyle(*args, **kwds):
"""
Opens a CrosshairDialog.
:param args:
:param kwds:
:return: specified CrosshairStyle if accepted, else None
"""
d = PlotStyleDialog(*args, **kwds)
d.exec_()
if d.result() == QDialog.Accepted:
return d.crosshairStyle()
else:
return None
def __init__(self, parent=None, plotStyle=None, title='Specify Plot Style'):
super(PlotStyleDialog, self).__init__(parent=parent , \
buttons=QDialogButtonBox.Ok | QDialogButtonBox.Cancel)
self.w = PlotStyleWidget(parent=self)
self.setWindowTitle(title)
self.btOk = QPushButton('Ok')
self.btCancel = QPushButton('Cancel')
buttonBar = QHBoxLayout()
#buttonBar.addWidget(self.btCancel)
#buttonBar.addWidget(self.btOk)
l = self.layout()
l.addWidget(self.w)
l.addLayout(buttonBar)
#self.setLayout(l)
def plotStyle(self):
return self.w.plotStyle()
def setPlotStyle(self, plotStyle):
assert isinstance(plotStyle, PlotStyle)
self.w.setPlotStyle(plotStyle)
if __name__ == '__main__':
import site, sys
#add site-packages to sys.path as done by enmapboxplugin.py
from timeseriesviewer import sandbox
qgsApp = sandbox.initQgisEnvironment()
style = PlotStyleDialog.getPlotStyle()
print(style)
qgsApp.exec_()
qgsApp.exitQgis()
...@@ -626,8 +626,10 @@ class PixelCollection(QObject): ...@@ -626,8 +626,10 @@ class PixelCollection(QObject):
return tsds, values return tsds, values
class SensorPlotSettings(object): from plotstyling import PlotStyle
class SensorPlotSettings(PlotStyle):
def __init__(self, sensor, memoryLyr): def __init__(self, sensor, memoryLyr):
super(SensorPlotSettings, self).__init__()
assert isinstance(sensor, SensorInstrument) assert isinstance(sensor, SensorInstrument)
assert isinstance(memoryLyr, QgsVectorLayer) assert isinstance(memoryLyr, QgsVectorLayer)
...@@ -1107,8 +1109,8 @@ class SpectralTemporalVisualization(QObject): ...@@ -1107,8 +1109,8 @@ class SpectralTemporalVisualization(QObject):
assert isinstance(sensorView, SensorPlotSettings) assert isinstance(sensorView, SensorPlotSettings)
if sensorView.sensor not in self.plotData2D.keys(): if sensorView.sensor not in self.plotData2D.keys():
plotDataItem = SensorPoints(name=sensorView.sensor.name(), pen=None, symbol='o', symbolPen=None) #plotDataItem = SensorPoints(name=sensorView.sensor.name(), pen=None, symbol='o', symbolPen=None)
plotDataItem = pg.ScatterPlotItem(name=sensorView.sensor.name(), pen= {'color': 'w', 'width': 2},brush=QColor('green'), symbol='o') #plotDataItem = pg.ScatterPlotItem(name=sensorView.sensor.name(), pen= {'color': 'w', 'width': 2},brush=QColor('green'), symbol='o')
#self.plot2D.addItem(plotDataItem) #self.plot2D.addItem(plotDataItem)
......
<?xml version="1.0" encoding="UTF-8"?>
<ui version="4.0">
<class>Form</class>
<widget class="QWidget" name="Form">
<property name="geometry">
<rect>
<x>0</x>
<y>0</y>
<width>429</width>
<height>310</height>
</rect>
</property>
<property name="windowTitle">
<string>Form</string>
</property>
<layout class="QGridLayout" name="gridLayout">
<item row="1" column="0" rowspan="4" colspan="3">
<widget class="PlotWidget" name="plotWidget"/>
</item>
<item row="0" column="1" colspan="2">
<widget class="QGroupBox" name="groupBox_2">
<property name="title">
<string>Line</string>
</property>
<layout class="QFormLayout" name="formLayout_2">
<item row="0" column="0">
<widget class="QLabel" name="label_17">
<property name="enabled">
<bool>true</bool>
</property>
<property name="text">
<string>Style</string>
</property>
</widget>
</item>
<item row="0" column="1">
<widget class="QComboBox" name="cbLineType"/>
</item>
<item row="1" column="0">
<widget class="QLabel" name="label_18">
<property name="enabled">
<bool>true</bool>
</property>
<property name="text">
<string>Color</string>
</property>
</widget>
</item>
<item row="1" column="1">
<widget class="QgsColorButton" name="btnBrushColor_2">
<property name="enabled">
<bool>true</bool>
</property>
<property name="colorDialogTitle" stdset="0">
<string>Select Map Canvas Background Color</string>
</property>
<property name="color" stdset="0">
<color>
<red>255</red>
<green>0</green>
<blue>0</blue>
</color>
</property>
</widget>
</item>
<item row="2" column="0">
<widget class="QLabel" name="label_4">
<property name="enabled">
<bool>true</bool>
</property>
<property name="text">
<string>Width</string>
</property>
</widget>
</item>
<item row="2" column="1">
<widget class="QSpinBox" name="spinBoxCrosshairSize_2">
<property name="enabled">
<bool>true</bool>
</property>
<property name="sizePolicy">
<sizepolicy hsizetype="Minimum" vsizetype="Preferred">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="suffix">
<string> pt</string>
</property>
<property name="minimum">
<number>1</number>
</property>
<property name="maximum">
<number>50</number>
</property>
<property name="singleStep">
<number>1</number>
</property>
<property name="value">
<number>8</number>
</property>
</widget>
</item>
</layout>
</widget>
</item>
<item row="0" column="0">
<widget class="QGroupBox" name="groupBox">
<property name="sizePolicy">
<sizepolicy hsizetype="Preferred" vsizetype="Preferred">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="minimumSize">
<size>
<width>0</width>
<height>204</height>
</size>
</property>
<property name="title">
<string>Marker</string>
</property>
<layout class="QFormLayout" name="formLayout">
<item row="0" column="0">
<widget class="QLabel" name="label_19">
<property name="enabled">
<bool>true</bool>
</property>
<property name="text">
<string>Style</string>
</property>
</widget>
</item>
<item row="0" column="1">
<widget class="QComboBox" name="cbMarkerType_2"/>
</item>
<item row="1" column="0">
<widget class="QLabel" name="label_15">
<property name="enabled">
<bool>true</bool>
</property>
<property name="text">
<string>Fill</string>
</property>
</widget>
</item>
<item row="1" column="1">
<widget class="QgsColorButton" name="btnMarkerFillColor">
<property name="enabled">
<bool>true</bool>
</property>
<property name="colorDialogTitle" stdset="0">
<string>Select Map Canvas Background Color</string>
</property>
<property name="color" stdset="0">
<color>
<red>255</red>
<green>0</green>
<blue>0</blue>
</color>
</property>
</widget>
</item>
<item row="2" column="0">
<widget class="QLabel" name="label_2">
<property name="enabled">
<bool>true</bool>
</property>
<property name="text">
<string>Size</string>
</property>
</widget>
</item>
<item row="2" column="1">
<widget class="QSpinBox" name="spinBoxCrosshairSize">
<property name="enabled">
<bool>true</bool>
</property>
<property name="sizePolicy">
<sizepolicy hsizetype="Minimum" vsizetype="Preferred">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="minimumSize">
<size>
<width>0</width>
<height>21</height>
</size>
</property>
<property name="suffix">
<string> pt</string>
</property>
<property name="minimum">
<number>1</number>
</property>
<property name="maximum">
<number>50</number>
</property>
<property name="singleStep">
<number>1</number>
</property>
<property name="value">
<number>8</number>
</property>
</widget>
</item>
<item row="3" column="0">
<widget class="QLabel" name="label_14">
<property name="enabled">
<bool>true</bool>
</property>
<property name="text">
<string>Outline</string>
</property>
</widget>
</item>
<item row="3" column="1">
<widget class="QgsColorButton" name="btnMarkerColor">
<property name="enabled">
<bool>true</bool>
</property>
<property name="colorDialogTitle" stdset="0">
<string>Select Map Canvas Background Color</string>
</property>
<property name="color" stdset="0">
<color>
<red>255</red>
<green>0</green>
<blue>0</blue>
</color>
</property>
</widget>
</item>
<item row="4" column="0">
<widget class="QLabel" name="label_16">
<property name="enabled">
<bool>true</bool>
</property>
<property name="text">
<string>Outline style</string>
</property>
</widget>
</item>
<item row="4" column="1">
<widget class="QComboBox" name="cbMarkerType"/>
</item>
<item row="5" column="0">
<widget class="QLabel" name="label_3">
<property name="enabled">
<bool>true</bool>
</property>
<property name="text">
<string>Outline width</string>
</property>
</widget>
</item>
<item row="5" column="1">
<widget class="QSpinBox" name="spinBoxCrosshairSize_3">
<property name="enabled">
<bool>true</bool>
</property>
<property name="sizePolicy">
<sizepolicy hsizetype="Minimum" vsizetype="Preferred">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="minimumSize">
<size>
<width>0</width>
<height>21</height>
</size>
</property>
<property name="suffix">
<string> pt</string>
</property>
<property name="minimum">
<number>1</number>
</property>
<property name="maximum">
<number>50</number>
</property>
<property name="singleStep">
<number>1</number>
</property>
<property name="value">
<number>8</number>
</property>
</widget>
</item>
</layout>
</widget>
</item>
</layout>
</widget>
<customwidgets>
<customwidget>
<class>QgsColorButton</class>
<extends>QPushButton</extends>
<header>qgscolorbutton.h</header>
</customwidget>
<customwidget>
<class>PlotWidget</class>
<extends>QGraphicsView</extends>
<header>pyqtgraph</header>
</customwidget>
</customwidgets>
<resources/>
<connections/>
</ui>
This diff is collapsed.
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment