def __init__(self, app: QtWidgets.QWidget): super().__init__(app, "Markers") marker_count = max(self.app.settings.value("MarkerCount", 3, int), 1) for i in range(marker_count): marker = Marker("", self.app.settings) #marker.setFixedHeight(20) marker.updated.connect(self.app.markerUpdated) label, layout = marker.getRow() self.layout.addRow(label, layout) self.app.markers.append(marker) if i == 0: marker.isMouseControlledRadioButton.setChecked(True) self.check_delta = QCheckBox("Enable Delta Marker") self.check_delta.toggled.connect(self.toggle_delta) self.layout.addRow(self.check_delta) self.showMarkerButton = QtWidgets.QPushButton() self.showMarkerButton.setFixedHeight(20) if self.app.marker_frame.isHidden(): self.showMarkerButton.setText("Show data") else: self.showMarkerButton.setText("Hide data") self.showMarkerButton.clicked.connect(self.toggle_frame) lock_radiobutton = QtWidgets.QRadioButton("Locked") lock_radiobutton.setLayoutDirection(QtCore.Qt.RightToLeft) lock_radiobutton.setSizePolicy(QtWidgets.QSizePolicy.Maximum, QtWidgets.QSizePolicy.Preferred) hbox = QtWidgets.QHBoxLayout() hbox.addWidget(self.showMarkerButton) hbox.addWidget(lock_radiobutton) self.layout.addRow(hbox)
def removeMarker(self): # keep at least one marker if Marker.count() <= 1: return if Marker.count() == 2: self.btn_remove_marker.setDisabled(True) last_marker = self.app.markers.pop() last_marker.updated.disconnect(self.app.markerUpdated) self.app.marker_data_layout.removeWidget(last_marker.getGroupBox()) self.app.marker_control_layout.removeRow(Marker.count()-1) last_marker.getGroupBox().hide() last_marker.getGroupBox().destroy() label, _ = last_marker.getRow() label.hide()
def removeMarker(self): # keep at least one marker if Marker.count() <= 1: return if Marker.count() == 2: self.btn_remove_marker.setDisabled(True) self.app.delta_marker_layout.setVisible(False) self.app.marker_control.check_delta.setDisabled(True) last_marker = self.app.markers.pop() last_marker.updated.disconnect(self.app.markerUpdated) self.app.marker_data_layout.removeWidget(last_marker.get_data_layout()) self.app.marker_control.layout.removeRow(Marker.count() - 1) self.app.marker_frame.adjustSize() last_marker.get_data_layout().hide() last_marker.get_data_layout().destroy() label, _ = last_marker.getRow() label.hide()
def addMarker(self): new_marker = Marker("", self.app.settings) new_marker.setScale(self.app.scaleFactor) self.app.markers.append(new_marker) self.app.marker_data_layout.addWidget(new_marker.getGroupBox()) new_marker.updated.connect(self.app.markerUpdated) label, layout = new_marker.getRow() self.app.marker_control_layout.insertRow(Marker.count() - 1, label, layout) self.btn_remove_marker.setDisabled(False)
def addMarker(self): new_marker = Marker("", self.app.settings) new_marker.setScale(self.app.scaleFactor) self.app.markers.append(new_marker) self.app.marker_data_layout.addWidget(new_marker.get_data_layout()) self.app.marker_frame.adjustSize() new_marker.updated.connect(self.app.markerUpdated) label, layout = new_marker.getRow() self.app.marker_control.layout.insertRow(Marker.count() - 1, label, layout) self.btn_remove_marker.setDisabled(False) if Marker.count() >= 2: self.app.marker_control.check_delta.setDisabled(False)
def NewChart(cls, chart_class, name, app): from NanoVNASaver.NanoVNASaver import BandsModel new_chart = chart_class(name) new_chart.isPopout = True new_chart.data = app.data new_chart.bands = BandsModel() i = 0 default_color = app.default_marker_colors[i] color = app.settings.value("Marker" + str(i + 1) + "Color", default_color) marker = Marker("Marker " + str(i + 1), color) marker.isMouseControlledRadioButton.setChecked(True) new_chart.setMarkers([marker]) return new_chart
def __init__(self, app: QtWidgets.QWidget): super().__init__() self.app = app self.setWindowTitle("Marker settings") self.setWindowIcon(self.app.icon) QtWidgets.QShortcut(QtCore.Qt.Key_Escape, self, self.cancelButtonClick) self.exampleMarker = Marker("Example marker") layout = QtWidgets.QVBoxLayout() self.setLayout(layout) settings_group_box = QtWidgets.QGroupBox("Settings") settings_group_box_layout = QtWidgets.QFormLayout(settings_group_box) self.checkboxColouredMarker = QtWidgets.QCheckBox( "Colored marker name") self.checkboxColouredMarker.setChecked( self.app.settings.value("ColoredMarkerNames", True, bool)) self.checkboxColouredMarker.stateChanged.connect(self.updateMarker) settings_group_box_layout.addRow(self.checkboxColouredMarker) fields_group_box = QtWidgets.QGroupBox("Displayed data") fields_group_box_layout = QtWidgets.QFormLayout(fields_group_box) self.savedFieldSelection = self.app.settings.value( "MarkerFields", defaultValue=default_label_ids()) if self.savedFieldSelection == "": self.savedFieldSelection = [] self.currentFieldSelection = self.savedFieldSelection[:] self.active_labels_view = QtWidgets.QListView() self.update_displayed_data_form() fields_group_box_layout.addRow(self.active_labels_view) layout.addWidget(settings_group_box) layout.addWidget(fields_group_box) layout.addWidget(self.exampleMarker.getGroupBox()) btn_layout = QtWidgets.QHBoxLayout() layout.addLayout(btn_layout) btn_ok = QtWidgets.QPushButton("OK") btn_apply = QtWidgets.QPushButton("Apply") btn_default = QtWidgets.QPushButton("Defaults") btn_cancel = QtWidgets.QPushButton("Cancel") btn_ok.clicked.connect(self.okButtonClick) btn_apply.clicked.connect(self.applyButtonClick) btn_default.clicked.connect(self.defaultButtonClick) btn_cancel.clicked.connect(self.cancelButtonClick) btn_layout.addWidget(btn_ok) btn_layout.addWidget(btn_apply) btn_layout.addWidget(btn_default) btn_layout.addWidget(btn_cancel) self.updateMarker() for m in self.app.markers: m.setFieldSelection(self.currentFieldSelection) m.setColoredText(self.checkboxColouredMarker.isChecked())
class MarkerSettingsWindow(QtWidgets.QWidget): exampleData11 = [ Datapoint(123000000, 0.89, -0.11), Datapoint(123500000, 0.9, -0.1), Datapoint(124000000, 0.91, -0.95) ] exampleData21 = [ Datapoint(123000000, -0.25, 0.49), Datapoint(123456000, -0.3, 0.5), Datapoint(124000000, -0.2, 0.5) ] def __init__(self, app: QtWidgets.QWidget): super().__init__() self.app = app self.setWindowTitle("Marker settings") self.setWindowIcon(self.app.icon) QtWidgets.QShortcut(QtCore.Qt.Key_Escape, self, self.cancelButtonClick) self.exampleMarker = Marker("Example marker") layout = QtWidgets.QVBoxLayout() self.setLayout(layout) settings_group_box = QtWidgets.QGroupBox("Settings") settings_group_box_layout = QtWidgets.QFormLayout(settings_group_box) self.checkboxColouredMarker = QtWidgets.QCheckBox( "Colored marker name") self.checkboxColouredMarker.setChecked( self.app.settings.value("ColoredMarkerNames", True, bool)) self.checkboxColouredMarker.stateChanged.connect(self.updateMarker) settings_group_box_layout.addRow(self.checkboxColouredMarker) fields_group_box = QtWidgets.QGroupBox("Displayed data") fields_group_box_layout = QtWidgets.QFormLayout(fields_group_box) self.savedFieldSelection = self.app.settings.value( "MarkerFields", defaultValue=default_label_ids()) if self.savedFieldSelection == "": self.savedFieldSelection = [] self.currentFieldSelection = self.savedFieldSelection[:] self.active_labels_view = QtWidgets.QListView() self.update_displayed_data_form() fields_group_box_layout.addRow(self.active_labels_view) layout.addWidget(settings_group_box) layout.addWidget(fields_group_box) layout.addWidget(self.exampleMarker.getGroupBox()) btn_layout = QtWidgets.QHBoxLayout() layout.addLayout(btn_layout) btn_ok = QtWidgets.QPushButton("OK") btn_apply = QtWidgets.QPushButton("Apply") btn_default = QtWidgets.QPushButton("Defaults") btn_cancel = QtWidgets.QPushButton("Cancel") btn_ok.clicked.connect(self.okButtonClick) btn_apply.clicked.connect(self.applyButtonClick) btn_default.clicked.connect(self.defaultButtonClick) btn_cancel.clicked.connect(self.cancelButtonClick) btn_layout.addWidget(btn_ok) btn_layout.addWidget(btn_apply) btn_layout.addWidget(btn_default) btn_layout.addWidget(btn_cancel) self.updateMarker() for m in self.app.markers: m.setFieldSelection(self.currentFieldSelection) m.setColoredText(self.checkboxColouredMarker.isChecked()) def updateMarker(self): self.exampleMarker.setFrequency(123456000) self.exampleMarker.setColoredText( self.checkboxColouredMarker.isChecked()) self.exampleMarker.setFieldSelection(self.currentFieldSelection) self.exampleMarker.findLocation(self.exampleData11) self.exampleMarker.resetLabels() self.exampleMarker.updateLabels(self.exampleData11, self.exampleData21) def updateField(self, field: QtGui.QStandardItem): if field.checkState() == QtCore.Qt.Checked: if not field.data() in self.currentFieldSelection: self.currentFieldSelection = [] for i in range(self.model.rowCount()): field = self.model.item(i, 0) if field.checkState() == QtCore.Qt.Checked: self.currentFieldSelection.append(field.data()) else: if field.data() in self.currentFieldSelection: self.currentFieldSelection.remove(field.data()) self.updateMarker() def applyButtonClick(self): self.savedFieldSelection = self.currentFieldSelection[:] self.app.settings.setValue("MarkerFields", self.savedFieldSelection) self.app.settings.setValue("ColoredMarkerNames", self.checkboxColouredMarker.isChecked()) for m in self.app.markers: m.setFieldSelection(self.savedFieldSelection) m.setColoredText(self.checkboxColouredMarker.isChecked()) def okButtonClick(self): self.applyButtonClick() self.close() def cancelButtonClick(self): self.currentFieldSelection = self.savedFieldSelection[:] self.update_displayed_data_form() self.updateMarker() self.close() def defaultButtonClick(self): self.currentFieldSelection = default_label_ids() self.update_displayed_data_form() self.updateMarker() def update_displayed_data_form(self): self.model = QtGui.QStandardItemModel() for label in TYPES: item = QtGui.QStandardItem(label.description) item.setData(label.label_id) item.setCheckable(True) item.setEditable(False) if label.label_id in self.currentFieldSelection: item.setCheckState(QtCore.Qt.Checked) self.model.appendRow(item) self.active_labels_view.setModel(self.model) self.model.itemChanged.connect(self.updateField)