Configurable line thickness and data point sizes.

pull/44/head
Rune B. Broberg 2019-10-14 19:34:59 +02:00
rodzic 8b69cf2979
commit 1441b67ed1
2 zmienionych plików z 56 dodań i 9 usunięć

Wyświetl plik

@ -49,6 +49,9 @@ class Chart(QtWidgets.QWidget):
drawLines = False
minChartHeight = 200
minChartWidth = 200
lineThickness = 1
pointSize = 2
isPopout = False
popoutRequested = pyqtSignal(object)
@ -116,6 +119,14 @@ class Chart(QtWidgets.QWidget):
def setBands(self, bands):
self.bands = bands
def setLineThickness(self, thickness):
self.lineThickness = thickness
self.update()
def setPointSize(self, size):
self.pointSize = size
self.update()
def getActiveMarker(self, event: QtGui.QMouseEvent) -> Marker:
if self.draggedMarker is not None:
return self.draggedMarker
@ -503,9 +514,9 @@ class FrequencyChart(Chart):
def drawData(self, qp: QtGui.QPainter, data: List[Datapoint], color: QtGui.QColor):
pen = QtGui.QPen(color)
pen.setWidth(2)
pen.setWidth(self.pointSize)
line_pen = QtGui.QPen(color)
line_pen.setWidth(1)
line_pen.setWidth(self.lineThickness)
qp.setPen(pen)
for i in range(len(data)):
x, y = self.getPosition(data[i])
@ -573,6 +584,8 @@ class FrequencyChart(Chart):
new_chart.minFrequency = self.minFrequency
new_chart.minDisplayValue = self.minDisplayValue
new_chart.maxDisplayValue = self.maxDisplayValue
new_chart.pointSize = self.pointSize
new_chart.lineThickness = self.lineThickness
new_chart.setFixedSpan(self.fixedSpan)
new_chart.action_automatic.setChecked(not self.fixedSpan)
@ -920,9 +933,9 @@ class PolarChart(SquareChart):
if len(self.data) == 0 and len(self.reference) == 0:
return
pen = QtGui.QPen(self.sweepColor)
pen.setWidth(2)
pen.setWidth(self.pointSize)
line_pen = QtGui.QPen(self.sweepColor)
line_pen.setWidth(1)
line_pen.setWidth(self.lineThickness)
highlighter = QtGui.QPen(QtGui.QColor(20, 0, 255))
highlighter.setWidth(1)
qp.setPen(pen)
@ -1065,9 +1078,9 @@ class SmithChart(SquareChart):
if len(self.data) == 0 and len(self.reference) == 0:
return
pen = QtGui.QPen(self.sweepColor)
pen.setWidth(2)
pen.setWidth(self.pointSize)
line_pen = QtGui.QPen(self.sweepColor)
line_pen.setWidth(1)
line_pen.setWidth(self.lineThickness)
highlighter = QtGui.QPen(QtGui.QColor(20, 0, 255))
highlighter.setWidth(1)
qp.setPen(pen)
@ -1503,7 +1516,9 @@ class TDRChart(Chart):
qp.drawText(x - 20, 20 + height,
str(round(self.tdrWindow.distance_axis[int((x - self.leftMargin) * x_step) - 1]/2, 1)) + "m")
qp.setPen(self.sweepColor)
pen = QtGui.QPen(self.sweepColor)
pen.setWidth(self.pointSize)
qp.setPen(pen)
for i in range(len(self.tdrWindow.distance_axis)):
qp.drawPoint(self.leftMargin + int(i / x_step), height - int(self.tdrWindow.td[i] / y_step))
id_max = np.argmax(self.tdrWindow.td)
@ -1738,6 +1753,10 @@ class RealImaginaryChart(FrequencyChart):
qp.setPen(pen)
qp.drawLine(self.leftMargin + self.chartWidth, 9, self.leftMargin + self.chartWidth + 5, 9)
primary_pen.setWidth(self.pointSize)
secondary_pen.setWidth(self.pointSize)
line_pen.setWidth(self.lineThickness)
for i in range(len(self.data)):
x = self.getXPosition(self.data[i])
y_re = self.getReYPosition(self.data[i])

Wyświetl plik

@ -1127,6 +1127,24 @@ class DisplaySettingsWindow(QtWidgets.QWidget):
display_options_layout.addRow("Second reference color", self.btnSecondaryReferenceColorPicker)
self.pointSizeInput = QtWidgets.QSpinBox()
self.pointSizeInput.setValue(self.app.settings.value("PointSize", 2, int))
self.pointSizeInput.setMinimum(1)
self.pointSizeInput.setMaximum(10)
self.pointSizeInput.setSuffix(" px")
self.pointSizeInput.setAlignment(QtCore.Qt.AlignRight)
self.pointSizeInput.valueChanged.connect(self.changePointSize)
display_options_layout.addRow("Point size", self.pointSizeInput)
self.lineThicknessInput = QtWidgets.QSpinBox()
self.lineThicknessInput.setValue(self.app.settings.value("LineThickness", 1, int))
self.lineThicknessInput.setMinimum(1)
self.lineThicknessInput.setMaximum(10)
self.lineThicknessInput.setSuffix(" px")
self.lineThicknessInput.setAlignment(QtCore.Qt.AlignRight)
self.lineThicknessInput.valueChanged.connect(self.changeLineThickness)
display_options_layout.addRow("Line thickness", self.lineThicknessInput)
color_options_box = QtWidgets.QGroupBox("Chart colors")
color_options_layout = QtWidgets.QFormLayout(color_options_box)
@ -1145,7 +1163,7 @@ class DisplaySettingsWindow(QtWidgets.QWidget):
self.btn_foreground_picker.clicked.connect(lambda: self.setColor("foreground", QtWidgets.QColorDialog.getColor(self.foregroundColor, options=QtWidgets.QColorDialog.ShowAlphaChannel)))
color_options_layout.addRow("Chart foreground", self.btn_foreground_picker)
self.btn_text_picker = QtWidgets.QPushButton("")
self.btn_text_picker.setFixedWidth(20)
self.btn_text_picker.clicked.connect(lambda: self.setColor("text", QtWidgets.QColorDialog.getColor(self.textColor, options=QtWidgets.QColorDialog.ShowAlphaChannel)))
@ -1256,7 +1274,7 @@ class DisplaySettingsWindow(QtWidgets.QWidget):
chart01_selection.setCurrentIndex(selections.index(self.app.settings.value("Chart01", "S11 Return Loss")))
chart01_selection.currentTextChanged.connect(lambda: self.changeChart(0, 1, chart01_selection.currentText()))
charts_layout.addWidget(chart01_selection, 0, 1)
chart02_selection = QtWidgets.QComboBox()
chart02_selection.addItems(selections)
chart02_selection.setCurrentIndex(selections.index(self.app.settings.value("Chart02", "None")))
@ -1379,6 +1397,16 @@ class DisplaySettingsWindow(QtWidgets.QWidget):
for c in self.app.subscribing_charts:
c.setDrawLines(state)
def changePointSize(self, size: int):
self.app.settings.setValue("PointSize", size)
for c in self.app.subscribing_charts:
c.setPointSize(size)
def changeLineThickness(self, size: int):
self.app.settings.setValue("LineThickness", size)
for c in self.app.subscribing_charts:
c.setLineThickness(size)
def changeDarkMode(self):
state = self.dark_mode_option.isChecked()
self.app.settings.setValue("DarkMode", state)