kopia lustrzana https://github.com/NanoVNA-Saver/nanovna-saver
Configurable line thickness and data point sizes.
rodzic
8b69cf2979
commit
1441b67ed1
|
@ -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])
|
||||
|
|
|
@ -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)
|
||||
|
|
Ładowanie…
Reference in New Issue