pull/617/head
Holger Müller 2023-03-12 08:02:58 +01:00
rodzic 2c58b2ba8f
commit b768a8e01b
60 zmienionych plików z 296 dodań i 272 usunięć

Wyświetl plik

@ -12,4 +12,4 @@ disable=W0614,C0410,C0321,C0111,I0011,C0103
# allow ls for list
good-names=_,a,b,c,dt,db,e,f,fn,fd,i,j,k,v,kv,kw,l,m,n,ls,t,t0,t1,t2,t3,w,h,x,y,z,it,op
[MASTER]
extension-pkg-whitelist=PyQt5
extension-pkg-whitelist=PyQt6

Wyświetl plik

@ -39,7 +39,7 @@ points, and generally display and analyze the resulting data.
* Copyright 2019, 2020 Rune B. Broberg
* Copyright 2020ff NanoVNA-Saver Authors
It's written in **Python 3** using **PyQt5** and **scipy**.
It's written in **Python 3** using **PyQt6** and **scipy**.
Introduction

Wyświetl plik

@ -1,5 +1,5 @@
pyserial==3.5
PyQt5==5.15.9
PyQt6==5.15.9
numpy==1.24.2
scipy==1.10.1
Cython==0.29.33

Wyświetl plik

@ -31,7 +31,7 @@ python_requires = >=3.8, <4
# For more information, check out https://semver.org/.
install_requires =
pyserial>=3.5
PyQt5>=5.15.0
PyQt6>=5.15.0
numpy>=1.21.1
scipy>=1.7.1
Cython>=0.29.24

Wyświetl plik

@ -21,7 +21,7 @@
import logging
from time import sleep
from PyQt5 import QtWidgets
from PyQt6 import QtWidgets
from NanoVNASaver.Analysis.VSWRAnalysis import VSWRAnalysis

Wyświetl plik

@ -20,7 +20,7 @@ import logging
import math
from typing import Dict, List
from PyQt5 import QtWidgets
from PyQt6 import QtWidgets
import NanoVNASaver.AnalyticTools as at
from NanoVNASaver.Analysis.Base import Analysis, CUTOFF_VALS

Wyświetl plik

@ -18,7 +18,7 @@
# along with this program. If not, see <https://www.gnu.org/licenses/>.
import logging
from typing import Dict
from PyQt5 import QtWidgets
from PyQt6 import QtWidgets
logger = logging.getLogger(__name__)
@ -28,7 +28,7 @@ CUTOFF_VALS = (3.0, 6.0, 10.0, 20.0, 60.0)
class QHLine(QtWidgets.QFrame):
def __init__(self):
super().__init__()
self.setFrameShape(QtWidgets.QFrame.HLine)
self.setFrameShape(QtWidgets.QFrame.Shape.HLine)
class Analysis:

Wyświetl plik

@ -19,7 +19,7 @@
import csv
import logging
from PyQt5 import QtWidgets
from PyQt6 import QtWidgets
import NanoVNASaver.AnalyticTools as at
from NanoVNASaver.Analysis.ResonanceAnalysis import (

Wyświetl plik

@ -20,7 +20,7 @@ import logging
import math
from typing import Dict, List
from PyQt5 import QtWidgets
from PyQt6 import QtWidgets
import NanoVNASaver.AnalyticTools as at
from NanoVNASaver.Analysis.Base import Analysis, CUTOFF_VALS

Wyświetl plik

@ -18,7 +18,7 @@
# along with this program. If not, see <https://www.gnu.org/licenses/>.
import logging
from PyQt5 import QtWidgets
from PyQt6 import QtWidgets
import numpy as np
# pylint: disable=import-error, no-name-in-module

Wyświetl plik

@ -21,7 +21,7 @@ import csv
import logging
from typing import List
from PyQt5 import QtWidgets
from PyQt6 import QtWidgets
import NanoVNASaver.AnalyticTools as at
from NanoVNASaver.Analysis.Base import Analysis, QHLine

Wyświetl plik

@ -19,7 +19,7 @@
import logging
from typing import Callable, List, Tuple
from PyQt5 import QtWidgets
from PyQt6 import QtWidgets
import numpy as np
from NanoVNASaver.Analysis.Base import Analysis, QHLine

Wyświetl plik

@ -19,7 +19,7 @@
import logging
from typing import List
from PyQt5 import QtWidgets
from PyQt6 import QtWidgets
import NanoVNASaver.AnalyticTools as at
from NanoVNASaver.Analysis.Base import Analysis, QHLine

Wyświetl plik

@ -20,7 +20,7 @@ import math
import logging
from typing import List
from PyQt5 import QtGui
from PyQt6 import QtGui
from NanoVNASaver.RFTools import Datapoint
from NanoVNASaver.Charts.Chart import Chart

Wyświetl plik

@ -21,9 +21,9 @@ import logging
from dataclasses import dataclass, field, replace
from typing import List, Set, Tuple, ClassVar, Any, Optional
from PyQt5 import QtWidgets, QtGui, QtCore
from PyQt5.QtCore import pyqtSignal
from PyQt5.QtGui import QColor
from PyQt6 import QtWidgets, QtGui, QtCore
from PyQt6.QtCore import pyqtSignal, Qt
from PyQt6.QtGui import QColor, QColorConstants, QAction
from NanoVNASaver import Defaults
from NanoVNASaver.RFTools import Datapoint
@ -34,20 +34,24 @@ logger = logging.getLogger(__name__)
@dataclass
class ChartColors: # pylint: disable=too-many-instance-attributes
background: QColor = field(default_factory=lambda: QColor(QtCore.Qt.white))
background: QColor = field(
default_factory=lambda: QColor(QColorConstants.White)
)
foreground: QColor = field(
default_factory=lambda: QColor(QtCore.Qt.lightGray)
default_factory=lambda: QColor(QColorConstants.LightGray)
)
reference: QColor = field(default_factory=lambda: QColor(0, 0, 255, 64))
reference_secondary: QColor = field(
default_factory=lambda: QColor(0, 0, 192, 48)
)
sweep: QColor = field(default_factory=lambda: QColor(QtCore.Qt.darkYellow))
sweep: QColor = field(
default_factory=lambda: QColor(QColorConstants.DarkYellow)
)
sweep_secondary: QColor = field(
default_factory=lambda: QColor(QtCore.Qt.darkMagenta)
default_factory=lambda: QColor(QColorConstants.DarkMagenta)
)
swr: QColor = field(default_factory=lambda: QColor(255, 0, 0, 128))
text: QColor = field(default_factory=lambda: QColor(QtCore.Qt.black))
text: QColor = field(default_factory=lambda: QColor(QColorConstants.Black))
bands: QColor = field(default_factory=lambda: QColor(128, 128, 128, 48))
@ -130,17 +134,17 @@ class Chart(QtWidgets.QWidget):
self.markers: List[Marker] = []
self.swrMarkers: Set[float] = set()
self.action_popout = QtWidgets.QAction("Popout chart")
self.action_popout = QAction("Popout chart")
self.action_popout.triggered.connect(
lambda: self.popoutRequested.emit(self)
)
self.addAction(self.action_popout)
self.action_save_screenshot = QtWidgets.QAction("Save image")
self.action_save_screenshot = QAction("Save image")
self.action_save_screenshot.triggered.connect(self.saveScreenshot)
self.addAction(self.action_save_screenshot)
self.setContextMenuPolicy(QtCore.Qt.ActionsContextMenu)
self.setContextMenuPolicy(Qt.ContextMenuPolicy.ActionsContextMenu)
def setReference(self, data):
self.reference = data
@ -209,21 +213,21 @@ class Chart(QtWidgets.QWidget):
self.update()
def mousePressEvent(self, event: QtGui.QMouseEvent) -> None:
if event.buttons() == QtCore.Qt.RightButton:
if event.buttons() == Qt.MouseButton.RightButton:
event.ignore()
return
if event.buttons() == QtCore.Qt.MiddleButton:
if event.buttons() == Qt.MouseButton.MiddleButton:
# Drag event
event.accept()
self.dragbox.move_x = event.x()
self.dragbox.move_y = event.y()
return
if event.modifiers() == QtCore.Qt.ControlModifier:
if event.modifiers() == Qt.KeyboardModifier.ControlModifier:
event.accept()
self.dragbox.state = True
self.dragbox.pos_start = (event.x(), event.y())
return
if event.modifiers() == QtCore.Qt.ShiftModifier:
if event.modifiers() == Qt.KeyboardModifier.ShiftModifier:
self.draggedMarker = self.getNearestMarker(event.x(), event.y())
self.mouseMoveEvent(event)
@ -233,8 +237,8 @@ class Chart(QtWidgets.QWidget):
self.zoomTo(
self.dragbox.pos_start[0],
self.dragbox.pos_start[1],
a0.x(),
a0.y(),
a0.position().x(),
a0.position().y(),
)
self.dragbox.state = False
self.dragbox.pos = (-1, -1)
@ -248,8 +252,8 @@ class Chart(QtWidgets.QWidget):
return
modifiers = a0.modifiers()
zoom_x = modifiers != QtCore.Qt.ShiftModifier
zoom_y = modifiers != QtCore.Qt.ControlModifier
zoom_x = modifiers != Qt.KeyboardModifier.ShiftModifier
zoom_y = modifiers != Qt.KeyboardModifier.ControlModifier
rate = -delta / 120
# zooming in 10% increments and 9% complementary
divisor = 10 if delta > 0 else 9
@ -257,8 +261,8 @@ class Chart(QtWidgets.QWidget):
factor_x = rate * self.dim.width / divisor if zoom_x else 0
factor_y = rate * self.dim.height / divisor if zoom_y else 0
abs_x = max(0, a0.x() - self.leftMargin)
abs_y = max(0, a0.y() - self.topMargin)
abs_x = max(0, a0.position().x() - self.leftMargin)
abs_y = max(0, a0.position().y() - self.topMargin)
ratio_x = abs_x / self.dim.width
ratio_y = abs_y / self.dim.height
@ -337,6 +341,6 @@ class Chart(QtWidgets.QWidget):
def update(self):
pal = self.palette()
pal.setColor(QtGui.QPalette.Background, Chart.color.background)
pal.setColor(QtGui.QPalette.ColorRole.Window, Chart.color.background)
self.setPalette(pal)
super().update()

Wyświetl plik

@ -21,7 +21,8 @@ import logging
from typing import List, Tuple
import numpy as np
from PyQt5 import QtWidgets, QtGui, QtCore
from PyQt6 import QtWidgets, QtGui, QtCore
from PyQt6.QtCore import Qt
from NanoVNASaver.Charts.Chart import Chart
from NanoVNASaver.Formatting import (
@ -68,22 +69,22 @@ class FrequencyChart(Chart):
self.maxValue = 1
self.span = 1
self.setContextMenuPolicy(QtCore.Qt.DefaultContextMenu)
mode_group = QtWidgets.QActionGroup(self)
self.setContextMenuPolicy(Qt.ContextMenuPolicy.DefaultContextMenu)
mode_group = QtGui.QActionGroup(self)
self.menu = QtWidgets.QMenu()
self.reset = QtWidgets.QAction("Reset")
self.reset = QtGui.QAction("Reset")
self.reset.triggered.connect(self.resetDisplayLimits)
self.menu.addAction(self.reset)
self.x_menu = QtWidgets.QMenu("Frequency axis")
self.action_automatic = QtWidgets.QAction("Automatic")
self.action_automatic = QtGui.QAction("Automatic")
self.action_automatic.setCheckable(True)
self.action_automatic.setChecked(True)
self.action_automatic.changed.connect(
lambda: self.setFixedSpan(self.action_fixed_span.isChecked())
)
self.action_fixed_span = QtWidgets.QAction("Fixed span")
self.action_fixed_span = QtGui.QAction("Fixed span")
self.action_fixed_span.setCheckable(True)
self.action_fixed_span.changed.connect(
lambda: self.setFixedSpan(self.action_fixed_span.isChecked())
@ -94,12 +95,12 @@ class FrequencyChart(Chart):
self.x_menu.addAction(self.action_fixed_span)
self.x_menu.addSeparator()
self.action_set_fixed_start = QtWidgets.QAction(
self.action_set_fixed_start = QtGui.QAction(
f"Start ({format_frequency_chart(self.minFrequency)})"
)
self.action_set_fixed_start.triggered.connect(self.setMinimumFrequency)
self.action_set_fixed_stop = QtWidgets.QAction(
self.action_set_fixed_stop = QtGui.QAction(
f"Stop ({format_frequency_chart(self.maxFrequency)})"
)
self.action_set_fixed_stop.triggered.connect(self.setMaximumFrequency)
@ -108,10 +109,10 @@ class FrequencyChart(Chart):
self.x_menu.addAction(self.action_set_fixed_stop)
self.x_menu.addSeparator()
frequency_mode_group = QtWidgets.QActionGroup(self.x_menu)
self.action_set_linear_x = QtWidgets.QAction("Linear")
frequency_mode_group = QtGui.QActionGroup(self.x_menu)
self.action_set_linear_x = QtGui.QAction("Linear")
self.action_set_linear_x.setCheckable(True)
self.action_set_logarithmic_x = QtWidgets.QAction("Logarithmic")
self.action_set_logarithmic_x = QtGui.QAction("Logarithmic")
self.action_set_logarithmic_x.setCheckable(True)
frequency_mode_group.addAction(self.action_set_linear_x)
frequency_mode_group.addAction(self.action_set_logarithmic_x)
@ -126,30 +127,30 @@ class FrequencyChart(Chart):
self.x_menu.addAction(self.action_set_logarithmic_x)
self.y_menu = QtWidgets.QMenu("Data axis")
self.y_action_automatic = QtWidgets.QAction("Automatic")
self.y_action_automatic = QtGui.QAction("Automatic")
self.y_action_automatic.setCheckable(True)
self.y_action_automatic.setChecked(True)
self.y_action_automatic.changed.connect(
lambda: self.setFixedValues(self.y_action_fixed_span.isChecked())
)
self.y_action_fixed_span = QtWidgets.QAction("Fixed span")
self.y_action_fixed_span = QtGui.QAction("Fixed span")
self.y_action_fixed_span.setCheckable(True)
self.y_action_fixed_span.changed.connect(
lambda: self.setFixedValues(self.y_action_fixed_span.isChecked())
)
mode_group = QtWidgets.QActionGroup(self)
mode_group = QtGui.QActionGroup(self)
mode_group.addAction(self.y_action_automatic)
mode_group.addAction(self.y_action_fixed_span)
self.y_menu.addAction(self.y_action_automatic)
self.y_menu.addAction(self.y_action_fixed_span)
self.y_menu.addSeparator()
self.action_set_fixed_minimum = QtWidgets.QAction(
self.action_set_fixed_minimum = QtGui.QAction(
f"Minimum ({self.minDisplayValue})"
)
self.action_set_fixed_minimum.triggered.connect(self.setMinimumValue)
self.action_set_fixed_maximum = QtWidgets.QAction(
self.action_set_fixed_maximum = QtGui.QAction(
f"Maximum ({self.maxDisplayValue})"
)
self.action_set_fixed_maximum.triggered.connect(self.setMaximumValue)
@ -159,10 +160,10 @@ class FrequencyChart(Chart):
if self.logarithmicYAllowed(): # This only works for some plot types
self.y_menu.addSeparator()
vertical_mode_group = QtWidgets.QActionGroup(self.y_menu)
self.action_set_linear_y = QtWidgets.QAction("Linear")
vertical_mode_group = QtGui.QActionGroup(self.y_menu)
self.action_set_linear_y = QtGui.QAction("Linear")
self.action_set_linear_y.setCheckable(True)
self.action_set_logarithmic_y = QtWidgets.QAction("Logarithmic")
self.action_set_logarithmic_y = QtGui.QAction("Logarithmic")
self.action_set_logarithmic_y.setCheckable(True)
vertical_mode_group.addAction(self.action_set_linear_y)
vertical_mode_group.addAction(self.action_set_logarithmic_y)
@ -180,12 +181,12 @@ class FrequencyChart(Chart):
self.menu.addMenu(self.y_menu)
self.menu.addSeparator()
self.menu.addAction(self.action_save_screenshot)
self.action_popout = QtWidgets.QAction("Popout chart")
self.action_popout = QtGui.QAction("Popout chart")
self.action_popout.triggered.connect(
lambda: self.popoutRequested.emit(self)
)
self.menu.addAction(self.action_popout)
self.setFocusPolicy(QtCore.Qt.ClickFocus)
self.setFocusPolicy(Qt.FocusPolicy.ClickFocus)
self.setMinimumSize(
self.dim.width + self.rightMargin + self.leftMargin,
@ -193,12 +194,12 @@ class FrequencyChart(Chart):
)
self.setSizePolicy(
QtWidgets.QSizePolicy(
QtWidgets.QSizePolicy.MinimumExpanding,
QtWidgets.QSizePolicy.MinimumExpanding,
QtWidgets.QSizePolicy.Policy.MinimumExpanding,
QtWidgets.QSizePolicy.Policy.MinimumExpanding,
)
)
pal = QtGui.QPalette()
pal.setColor(QtGui.QPalette.Background, Chart.color.background)
pal.setColor(QtGui.QPalette.ColorRole.Window, Chart.color.background)
self.setPalette(pal)
self.setAutoFillBackground(True)
@ -437,15 +438,15 @@ class FrequencyChart(Chart):
self.update()
def mouseMoveEvent(self, a0: QtGui.QMouseEvent):
if a0.buttons() == QtCore.Qt.RightButton:
if a0.buttons() == Qt.MouseButton.RightButton:
a0.ignore()
return
if a0.buttons() == QtCore.Qt.MiddleButton:
if a0.buttons() == Qt.MouseButton.MiddleButton:
# Drag the display
a0.accept()
if self.dragbox.move_x != -1 and self.dragbox.move_y != -1:
dx = self.dragbox.move_x - a0.x()
dy = self.dragbox.move_y - a0.y()
dx = self.dragbox.move_x - a0.position().x()
dy = self.dragbox.move_y - a0.position().y()
self.zoomTo(
self.leftMargin + dx,
self.topMargin + dy,
@ -453,18 +454,18 @@ class FrequencyChart(Chart):
self.topMargin + self.dim.height + dy,
)
self.dragbox.move_x = a0.x()
self.dragbox.move_y = a0.y()
self.dragbox.move_x = a0.position().x()
self.dragbox.move_y = a0.position().y()
return
if a0.modifiers() == QtCore.Qt.ControlModifier:
if a0.modifiers() == Qt.KeyboardModifier.ControlModifier:
# Dragging a box
if not self.dragbox.state:
self.dragbox.pos_start = (a0.x(), a0.y())
self.dragbox.pos = (a0.x(), a0.y())
self.dragbox.pos_start = (a0.position().x(), a0.position().y())
self.dragbox.pos = (a0.position().x(), a0.position().y())
self.update()
a0.accept()
return
x = a0.x()
x = a0.position().x()
f = self.frequencyAtPosition(x)
if x == -1:
a0.ignore()
@ -500,7 +501,7 @@ class FrequencyChart(Chart):
and (not self.reference or self._data_oob(self.reference))
):
# Data outside frequency range
qp.setBackgroundMode(QtCore.Qt.OpaqueMode)
qp.setBackgroundMode(Qt.OpaqueMode)
qp.setBackground(Chart.color.background)
qp.setPen(Chart.color.text)
qp.drawText(
@ -510,7 +511,7 @@ class FrequencyChart(Chart):
)
def drawDragbog(self, qp: QtGui.QPainter):
dashed_pen = QtGui.QPen(Chart.color.foreground, 1, QtCore.Qt.DashLine)
dashed_pen = QtGui.QPen(Chart.color.foreground, 1, Qt.DashLine)
qp.setPen(dashed_pen)
top_left = QtCore.QPoint(
self.dragbox.pos_start[0], self.dragbox.pos_start[1]
@ -803,16 +804,14 @@ class FrequencyChart(Chart):
def keyPressEvent(self, a0: QtGui.QKeyEvent) -> None:
m = self.getActiveMarker()
if m is not None and a0.modifiers() == QtCore.Qt.NoModifier:
if a0.key() in [QtCore.Qt.Key_Down, QtCore.Qt.Key_Left]:
if m is not None and a0.modifiers() == Qt.KeyboardModifier.NoModifier:
if a0.key() in [Qt.Key.Key_Down, Qt.Key.Key_Left]:
m.frequencyInput.keyPressEvent(
QtGui.QKeyEvent(
a0.type(), QtCore.Qt.Key_Down, a0.modifiers()
)
QtGui.QKeyEvent(a0.type(), Qt.Key.Key_Down, a0.modifiers())
)
elif a0.key() in [QtCore.Qt.Key_Up, QtCore.Qt.Key_Right]:
elif a0.key() in [Qt.Key.Key_Up, Qt.Key.Key_Right]:
m.frequencyInput.keyPressEvent(
QtGui.QKeyEvent(a0.type(), QtCore.Qt.Key_Up, a0.modifiers())
QtGui.QKeyEvent(a0.type(), Qt.Key.Key_Up, a0.modifiers())
)
else:
super().keyPressEvent(a0)

Wyświetl plik

@ -22,7 +22,7 @@ from typing import List
import numpy as np
from PyQt5 import QtGui
from PyQt6 import QtGui
from NanoVNASaver.Charts.Chart import Chart
from NanoVNASaver.RFTools import Datapoint

Wyświetl plik

@ -21,7 +21,7 @@ import math
import logging
from typing import List
from PyQt5 import QtGui
from PyQt6 import QtGui
from NanoVNASaver.Charts.Chart import Chart
from NanoVNASaver.Charts.Frequency import FrequencyChart

Wyświetl plik

@ -20,7 +20,7 @@ import math
import logging
from typing import List
from PyQt5 import QtGui
from PyQt6 import QtGui
from NanoVNASaver.RFTools import Datapoint
from NanoVNASaver.Charts.Chart import Chart

Wyświetl plik

@ -20,7 +20,7 @@ import math
import logging
from typing import List
from PyQt5 import QtGui
from PyQt6 import QtGui
from NanoVNASaver.RFTools import Datapoint
from NanoVNASaver.SITools import Format, Value, round_ceil, round_floor

Wyświetl plik

@ -20,7 +20,7 @@ import math
import logging
from typing import List
from PyQt5 import QtGui
from PyQt6 import QtGui
from NanoVNASaver.Marker.Widget import Marker
from NanoVNASaver.RFTools import Datapoint

Wyświetl plik

@ -22,7 +22,7 @@ import logging
from typing import List
import numpy as np
from PyQt5 import QtWidgets, QtGui
from PyQt6 import QtWidgets, QtGui
from NanoVNASaver.RFTools import Datapoint
from NanoVNASaver.Charts.Chart import Chart
@ -47,7 +47,7 @@ class PhaseChart(FrequencyChart):
self.maxDisplayValue = 180
self.y_menu.addSeparator()
self.action_unwrap = QtWidgets.QAction("Unwrap")
self.action_unwrap = QtGui.QAction("Unwrap")
self.action_unwrap.setCheckable(True)
self.action_unwrap.triggered.connect(
lambda: self.setUnwrap(self.action_unwrap.isChecked())

Wyświetl plik

@ -17,7 +17,7 @@
# You should have received a copy of the GNU General Public License
# along with this program. If not, see <https://www.gnu.org/licenses/>.
import logging
from PyQt5 import QtGui, QtCore
from PyQt6 import QtGui, QtCore
from NanoVNASaver.Charts.Chart import Chart
from NanoVNASaver.Charts.Square import SquareChart

Wyświetl plik

@ -20,7 +20,7 @@ import math
import logging
from typing import List
from PyQt5 import QtGui
from PyQt6 import QtGui
from NanoVNASaver.RFTools import Datapoint
from NanoVNASaver.Charts.Chart import Chart

Wyświetl plik

@ -20,7 +20,7 @@ import math
import logging
from typing import List, Optional
from PyQt5 import QtWidgets, QtGui
from PyQt6 import QtWidgets, QtGui
from NanoVNASaver.Formatting import format_frequency_chart
from NanoVNASaver.Marker.Widget import Marker
@ -58,18 +58,18 @@ class RealImaginaryChart(FrequencyChart):
self.y_menu.clear()
self.y_action_automatic = QtWidgets.QAction("Automatic")
self.y_action_automatic = QtGui.QAction("Automatic")
self.y_action_automatic.setCheckable(True)
self.y_action_automatic.setChecked(True)
self.y_action_automatic.changed.connect(
lambda: self.setFixedValues(self.y_action_fixed_span.isChecked())
)
self.y_action_fixed_span = QtWidgets.QAction("Fixed span")
self.y_action_fixed_span = QtGui.QAction("Fixed span")
self.y_action_fixed_span.setCheckable(True)
self.y_action_fixed_span.changed.connect(
lambda: self.setFixedValues(self.y_action_fixed_span.isChecked())
)
mode_group = QtWidgets.QActionGroup(self)
mode_group = QtGui.QActionGroup(self)
mode_group.addAction(self.y_action_automatic)
mode_group.addAction(self.y_action_fixed_span)
self.y_menu.addAction(self.y_action_automatic)

Wyświetl plik

@ -21,7 +21,7 @@ import numpy as np
import logging
from scipy.constants import mu_0
from PyQt5 import QtWidgets, QtGui
from PyQt6 import QtWidgets, QtGui
from NanoVNASaver.Formatting import format_frequency_chart
from NanoVNASaver.RFTools import Datapoint
@ -38,28 +38,28 @@ class RealImaginaryMuChart(RealImaginaryChart):
super().__init__(name)
self.y_menu.addSeparator()
self.action_set_fixed_maximum_real = QtWidgets.QAction(
self.action_set_fixed_maximum_real = QtGui.QAction(
f"Maximum {MU}' ({self.maxDisplayReal})"
)
self.action_set_fixed_maximum_real.triggered.connect(
self.setMaximumRealValue
)
self.action_set_fixed_minimum_real = QtWidgets.QAction(
self.action_set_fixed_minimum_real = QtGui.QAction(
f"Minimum {MU}' ({self.minDisplayReal})"
)
self.action_set_fixed_minimum_real.triggered.connect(
self.setMinimumRealValue
)
self.action_set_fixed_maximum_imag = QtWidgets.QAction(
self.action_set_fixed_maximum_imag = QtGui.QAction(
f"Maximum {MU}'' ({self.maxDisplayImag})"
)
self.action_set_fixed_maximum_imag.triggered.connect(
self.setMaximumImagValue
)
self.action_set_fixed_minimum_imag = QtWidgets.QAction(
self.action_set_fixed_minimum_imag = QtGui.QAction(
f"Minimum {MU}'' ({self.minDisplayImag})"
)
self.action_set_fixed_minimum_imag.triggered.connect(
@ -79,15 +79,13 @@ class RealImaginaryMuChart(RealImaginaryChart):
self.coreWindings = 1
self.menu.addSeparator()
self.action_set_core_length = QtWidgets.QAction("Core effective length")
self.action_set_core_length = QtGui.QAction("Core effective length")
self.action_set_core_length.triggered.connect(self.setCoreLength)
self.action_set_core_area = QtWidgets.QAction("Core area")
self.action_set_core_area = QtGui.QAction("Core area")
self.action_set_core_area.triggered.connect(self.setCoreArea)
self.action_set_core_windings = QtWidgets.QAction(
"Core number of windings"
)
self.action_set_core_windings = QtGui.QAction("Core number of windings")
self.action_set_core_windings.triggered.connect(self.setCoreWindings)
self.menu.addAction(self.action_set_core_length)

Wyświetl plik

@ -18,7 +18,7 @@
# along with this program. If not, see <https://www.gnu.org/licenses/>.
import logging
from PyQt5 import QtWidgets, QtGui
from PyQt6 import QtWidgets, QtGui
from NanoVNASaver.Formatting import format_frequency_chart
from NanoVNASaver.RFTools import Datapoint
@ -34,28 +34,28 @@ class RealImaginaryZChart(RealImaginaryChart):
super().__init__(name)
self.y_menu.addSeparator()
self.action_set_fixed_maximum_real = QtWidgets.QAction(
self.action_set_fixed_maximum_real = QtGui.QAction(
f"Maximum R ({self.maxDisplayReal})"
)
self.action_set_fixed_maximum_real.triggered.connect(
self.setMaximumRealValue
)
self.action_set_fixed_minimum_real = QtWidgets.QAction(
self.action_set_fixed_minimum_real = QtGui.QAction(
f"Minimum R ({self.minDisplayReal})"
)
self.action_set_fixed_minimum_real.triggered.connect(
self.setMinimumRealValue
)
self.action_set_fixed_maximum_imag = QtWidgets.QAction(
self.action_set_fixed_maximum_imag = QtGui.QAction(
f"Maximum jX ({self.maxDisplayImag})"
)
self.action_set_fixed_maximum_imag.triggered.connect(
self.setMaximumImagValue
)
self.action_set_fixed_minimum_imag = QtWidgets.QAction(
self.action_set_fixed_minimum_imag = QtGui.QAction(
f"Minimum jX ({self.minDisplayImag})"
)
self.action_set_fixed_minimum_imag.triggered.connect(

Wyświetl plik

@ -19,7 +19,7 @@
import logging
from typing import List
from PyQt5 import QtGui
from PyQt6 import QtGui
from NanoVNASaver.RFTools import Datapoint
from NanoVNASaver.Charts.Chart import Chart

Wyświetl plik

@ -17,7 +17,7 @@
# You should have received a copy of the GNU General Public License
# along with this program. If not, see <https://www.gnu.org/licenses/>.
import logging
from PyQt5 import QtGui, QtCore
from PyQt6 import QtGui, QtCore
from NanoVNASaver.Charts.Chart import Chart
from NanoVNASaver.Charts.Square import SquareChart

Wyświetl plik

@ -20,7 +20,7 @@ import logging
import math
from typing import List
from PyQt5 import QtGui, QtCore, QtWidgets
from PyQt6 import QtGui, QtCore, QtWidgets
from NanoVNASaver.Charts.Chart import Chart
from NanoVNASaver.RFTools import Datapoint
@ -32,7 +32,8 @@ class SquareChart(Chart):
def __init__(self, name=""):
super().__init__(name)
sizepolicy = QtWidgets.QSizePolicy(
QtWidgets.QSizePolicy.Fixed, QtWidgets.QSizePolicy.MinimumExpanding
QtWidgets.QSizePolicy.Policy.Fixed,
QtWidgets.QSizePolicy.Policy.MinimumExpanding,
)
self.setSizePolicy(sizepolicy)
self.dim.width = 250
@ -40,7 +41,7 @@ class SquareChart(Chart):
self.setMinimumSize(self.dim.width + 40, self.dim.height + 40)
pal = QtGui.QPalette()
pal.setColor(QtGui.QPalette.Background, Chart.color.background)
pal.setColor(QtGui.QPalette.ColorRole.Window, Chart.color.background)
self.setPalette(pal)
self.setAutoFillBackground(True)
@ -112,12 +113,12 @@ class SquareChart(Chart):
self.update()
def mouseMoveEvent(self, a0: QtGui.QMouseEvent):
if a0.buttons() == QtCore.Qt.RightButton:
if a0.buttons() == QtCore.Qt.MouseButton.RightButton:
a0.ignore()
return
x = a0.x()
y = a0.y()
x = a0.position().x()
y = a0.position().y()
absx = x - (self.width() - self.dim.width) / 2
absy = y - (self.height() - self.dim.height) / 2
if (

Wyświetl plik

@ -20,7 +20,8 @@ import math
import logging
import numpy as np
from PyQt5 import QtWidgets, QtGui, QtCore
from PyQt6 import QtWidgets, QtGui, QtCore
from PyQt6.QtCore import Qt
from NanoVNASaver.Charts.Chart import Chart
@ -48,31 +49,31 @@ class TDRChart(Chart):
self.setMinimumSize(300, 300)
self.setSizePolicy(
QtWidgets.QSizePolicy(
QtWidgets.QSizePolicy.MinimumExpanding,
QtWidgets.QSizePolicy.MinimumExpanding,
QtWidgets.QSizePolicy.Policy.MinimumExpanding,
QtWidgets.QSizePolicy.Policy.MinimumExpanding,
)
)
pal = QtGui.QPalette()
pal.setColor(QtGui.QPalette.Background, Chart.color.background)
pal.setColor(QtGui.QPalette.ColorRole.Window, Chart.color.background)
self.setPalette(pal)
self.setAutoFillBackground(True)
self.setContextMenuPolicy(QtCore.Qt.DefaultContextMenu)
self.setContextMenuPolicy(Qt.ContextMenuPolicy.DefaultContextMenu)
self.menu = QtWidgets.QMenu()
self.reset = QtWidgets.QAction("Reset")
self.reset = QtGui.QAction("Reset")
self.reset.triggered.connect(self.resetDisplayLimits)
self.menu.addAction(self.reset)
self.x_menu = QtWidgets.QMenu("Length axis")
self.mode_group = QtWidgets.QActionGroup(self.x_menu)
self.action_automatic = QtWidgets.QAction("Automatic")
self.mode_group = QtGui.QActionGroup(self.x_menu)
self.action_automatic = QtGui.QAction("Automatic")
self.action_automatic.setCheckable(True)
self.action_automatic.setChecked(True)
self.action_automatic.changed.connect(
lambda: self.setFixedSpan(self.action_fixed_span.isChecked())
)
self.action_fixed_span = QtWidgets.QAction("Fixed span")
self.action_fixed_span = QtGui.QAction("Fixed span")
self.action_fixed_span.setCheckable(True)
self.action_fixed_span.changed.connect(
lambda: self.setFixedSpan(self.action_fixed_span.isChecked())
@ -83,12 +84,12 @@ class TDRChart(Chart):
self.x_menu.addAction(self.action_fixed_span)
self.x_menu.addSeparator()
self.action_set_fixed_start = QtWidgets.QAction(
self.action_set_fixed_start = QtGui.QAction(
f"Start ({self.minDisplayLength})"
)
self.action_set_fixed_start.triggered.connect(self.setMinimumLength)
self.action_set_fixed_stop = QtWidgets.QAction(
self.action_set_fixed_stop = QtGui.QAction(
f"Stop ({self.maxDisplayLength})"
)
self.action_set_fixed_stop.triggered.connect(self.setMaximumLength)
@ -97,14 +98,14 @@ class TDRChart(Chart):
self.x_menu.addAction(self.action_set_fixed_stop)
self.y_menu = QtWidgets.QMenu("Impedance axis")
self.y_mode_group = QtWidgets.QActionGroup(self.y_menu)
self.y_action_automatic = QtWidgets.QAction("Automatic")
self.y_mode_group = QtGui.QActionGroup(self.y_menu)
self.y_action_automatic = QtGui.QAction("Automatic")
self.y_action_automatic.setCheckable(True)
self.y_action_automatic.setChecked(True)
self.y_action_automatic.changed.connect(
lambda: self.setFixedValues(self.y_action_fixed.isChecked())
)
self.y_action_fixed = QtWidgets.QAction("Fixed")
self.y_action_fixed = QtGui.QAction("Fixed")
self.y_action_fixed.setCheckable(True)
self.y_action_fixed.changed.connect(
lambda: self.setFixedValues(self.y_action_fixed.isChecked())
@ -115,14 +116,14 @@ class TDRChart(Chart):
self.y_menu.addAction(self.y_action_fixed)
self.y_menu.addSeparator()
self.y_action_set_fixed_maximum = QtWidgets.QAction(
self.y_action_set_fixed_maximum = QtGui.QAction(
f"Maximum ({self.maxImpedance})"
)
self.y_action_set_fixed_maximum.triggered.connect(
self.setMaximumImpedance
)
self.y_action_set_fixed_minimum = QtWidgets.QAction(
self.y_action_set_fixed_minimum = QtGui.QAction(
f"Minimum ({self.minImpedance})"
)
self.y_action_set_fixed_minimum.triggered.connect(
@ -136,7 +137,7 @@ class TDRChart(Chart):
self.menu.addMenu(self.y_menu)
self.menu.addSeparator()
self.menu.addAction(self.action_save_screenshot)
self.action_popout = QtWidgets.QAction("Popout chart")
self.action_popout = QtGui.QAction("Popout chart")
self.action_popout.triggered.connect(
lambda: self.popoutRequested.emit(self)
)
@ -256,34 +257,34 @@ class TDRChart(Chart):
return new_chart
def mouseMoveEvent(self, a0: QtGui.QMouseEvent) -> None:
if a0.buttons() == QtCore.Qt.RightButton:
if a0.buttons() == Qt.MouseButton.RightButton:
a0.ignore()
return
if a0.buttons() == QtCore.Qt.MiddleButton:
if a0.buttons() == Qt.MouseButton.MiddleButton:
# Drag the display
a0.accept()
if self.dragbox.move_x != -1 and self.dragbox.move_y != -1:
dx = self.dragbox.move_x - a0.x()
dy = self.dragbox.move_y - a0.y()
dx = self.dragbox.move_x - a0.position().x()
dy = self.dragbox.move_y - a0.position().y()
self.zoomTo(
self.leftMargin + dx,
self.topMargin + dy,
self.leftMargin + self.dim.width + dx,
self.topMargin + self.dim.height + dy,
)
self.dragbox.move_x = a0.x()
self.dragbox.move_y = a0.y()
self.dragbox.move_x = a0.position().x()
self.dragbox.move_y = a0.position().y()
return
if a0.modifiers() == QtCore.Qt.ControlModifier:
if a0.modifiers() == Qt.KeyboardModifier.ControlModifier:
# Dragging a box
if not self.dragbox.state:
self.dragbox.pos_start = (a0.x(), a0.y())
self.dragbox.pos = (a0.x(), a0.y())
self.dragbox.pos_start = (a0.position().x(), a0.position().y())
self.dragbox.pos = (a0.position().x(), a0.position().y())
self.update()
a0.accept()
return
x = a0.x()
x = a0.position().x()
absx = x - self.leftMargin
if absx < 0 or absx > self.width() - self.rightMargin:
a0.ignore()

Wyświetl plik

@ -20,7 +20,7 @@ import math
import logging
from typing import List
from PyQt5 import QtGui
from PyQt6 import QtGui
from NanoVNASaver.RFTools import Datapoint
from NanoVNASaver.Charts.Chart import Chart

Wyświetl plik

@ -18,7 +18,7 @@
# along with this program. If not, see <https://www.gnu.org/licenses/>.
import logging
from PyQt5 import QtWidgets, QtCore
from PyQt6 import QtWidgets, QtCore
logger = logging.getLogger(__name__)

Wyświetl plik

@ -18,8 +18,8 @@
# along with this program. If not, see <https://www.gnu.org/licenses/>.
import logging
from PyQt5 import QtWidgets, QtCore
from PyQt5.QtWidgets import QCheckBox
from PyQt6 import QtWidgets, QtCore
from PyQt6.QtWidgets import QCheckBox, QSizePolicy
from NanoVNASaver import Defaults
from NanoVNASaver.Marker.Widget import Marker
@ -70,9 +70,11 @@ class MarkerControl(Control):
self.showMarkerButton.clicked.connect(self.toggle_frame)
lock_radiobutton = QtWidgets.QRadioButton("Locked")
lock_radiobutton.setLayoutDirection(QtCore.Qt.RightToLeft)
lock_radiobutton.setLayoutDirection(
QtCore.Qt.LayoutDirection.RightToLeft
)
lock_radiobutton.setSizePolicy(
QtWidgets.QSizePolicy.Maximum, QtWidgets.QSizePolicy.Preferred
QSizePolicy.Policy.Maximum, QSizePolicy.Policy.Preferred
)
hbox = QtWidgets.QHBoxLayout()

Wyświetl plik

@ -19,7 +19,7 @@
import logging
from time import sleep
from PyQt5 import QtWidgets
from PyQt6 import QtWidgets
from NanoVNASaver.Hardware.Hardware import Interface, get_interfaces, get_VNA
from NanoVNASaver.Controls.Control import Control

Wyświetl plik

@ -18,7 +18,7 @@
# along with this program. If not, see <https://www.gnu.org/licenses/>.
import logging
from PyQt5 import QtWidgets, QtCore
from PyQt6 import QtWidgets, QtCore
from NanoVNASaver.Formatting import (
format_frequency_sweep,
@ -36,7 +36,7 @@ class SweepControl(Control):
super().__init__(app, "Sweep control")
line = QtWidgets.QFrame()
line.setFrameShape(QtWidgets.QFrame.VLine)
line.setFrameShape(QtWidgets.QFrame.Shape.VLine)
input_layout = QtWidgets.QHBoxLayout()
input_left_layout = QtWidgets.QFormLayout()
@ -49,14 +49,14 @@ class SweepControl(Control):
self.input_start = FrequencyInputWidget()
self.input_start.setFixedHeight(20)
self.input_start.setMinimumWidth(60)
self.input_start.setAlignment(QtCore.Qt.AlignRight)
self.input_start.setAlignment(QtCore.Qt.AlignmentFlag.AlignRight)
self.input_start.textEdited.connect(self.update_center_span)
self.input_start.textChanged.connect(self.update_step_size)
input_left_layout.addRow(QtWidgets.QLabel("Start"), self.input_start)
self.input_end = FrequencyInputWidget()
self.input_end.setFixedHeight(20)
self.input_end.setAlignment(QtCore.Qt.AlignRight)
self.input_end.setAlignment(QtCore.Qt.AlignmentFlag.AlignRight)
self.input_end.textEdited.connect(self.update_center_span)
self.input_end.textChanged.connect(self.update_step_size)
input_left_layout.addRow(QtWidgets.QLabel("Stop"), self.input_end)
@ -64,14 +64,14 @@ class SweepControl(Control):
self.input_center = FrequencyInputWidget()
self.input_center.setFixedHeight(20)
self.input_center.setMinimumWidth(60)
self.input_center.setAlignment(QtCore.Qt.AlignRight)
self.input_center.setAlignment(QtCore.Qt.AlignmentFlag.AlignRight)
self.input_center.textEdited.connect(self.update_start_end)
input_right_layout.addRow(QtWidgets.QLabel("Center"), self.input_center)
self.input_span = FrequencyInputWidget()
self.input_span.setFixedHeight(20)
self.input_span.setAlignment(QtCore.Qt.AlignRight)
self.input_span.setAlignment(QtCore.Qt.AlignmentFlag.AlignRight)
self.input_span.textEdited.connect(self.update_start_end)
input_right_layout.addRow(QtWidgets.QLabel("Span"), self.input_span)
@ -79,14 +79,15 @@ class SweepControl(Control):
self.input_segments = QtWidgets.QLineEdit(
self.app.settings.value("Segments", "1")
)
self.input_segments.setAlignment(QtCore.Qt.AlignRight)
self.input_segments.setAlignment(QtCore.Qt.AlignmentFlag.AlignRight)
self.input_segments.setFixedHeight(20)
self.input_segments.setFixedWidth(60)
self.input_segments.textEdited.connect(self.update_step_size)
self.label_step = QtWidgets.QLabel("Hz/step")
self.label_step.setAlignment(
QtCore.Qt.AlignRight | QtCore.Qt.AlignVCenter
QtCore.Qt.AlignmentFlag.AlignRight
| QtCore.Qt.AlignmentFlag.AlignVCenter
)
segment_layout = QtWidgets.QHBoxLayout()
@ -110,11 +111,13 @@ class SweepControl(Control):
self.btn_start = QtWidgets.QPushButton("Sweep")
self.btn_start.setFixedHeight(20)
self.btn_start.clicked.connect(self.app.sweep_start)
self.btn_start.setShortcut(QtCore.Qt.Key_W | QtCore.Qt.CTRL)
self.btn_start.setShortcut(
QtCore.Qt.Key.Key_Control + QtCore.Qt.Key.Key_W
)
self.btn_stop = QtWidgets.QPushButton("Stop")
self.btn_stop.setFixedHeight(20)
self.btn_stop.clicked.connect(self.app.sweep_stop)
self.btn_stop.setShortcut(QtCore.Qt.Key_Escape)
self.btn_stop.setShortcut(QtCore.Qt.Key.Key_Escape)
self.btn_stop.setDisabled(True)
btn_layout = QtWidgets.QHBoxLayout()
btn_layout.addWidget(self.btn_start)

Wyświetl plik

@ -21,9 +21,9 @@ import dataclasses as DC
import logging
from ast import literal_eval
from PyQt5 import QtCore
from PyQt5.QtCore import QSettings, QByteArray
from PyQt5.QtGui import QColor
from PyQt6 import QtCore
from PyQt6.QtCore import QSettings, QByteArray
from PyQt6.QtGui import QColor, QColorConstants
logger = logging.getLogger(__name__)
@ -69,23 +69,25 @@ class Chart:
@DC.dataclass
class ChartColors: # pylint: disable=too-many-instance-attributes
background: QColor = DC.field(
default_factory=lambda: QColor(QtCore.Qt.white)
default_factory=lambda: QColor(QColorConstants.White)
)
foreground: QColor = DC.field(
default_factory=lambda: QColor(QtCore.Qt.lightGray)
default_factory=lambda: QColor(QColorConstants.LightGray)
)
reference: QColor = DC.field(default_factory=lambda: QColor(0, 0, 255, 64))
reference_secondary: QColor = DC.field(
default_factory=lambda: QColor(0, 0, 192, 48)
)
sweep: QColor = DC.field(
default_factory=lambda: QColor(QtCore.Qt.darkYellow)
default_factory=lambda: QColor(QColorConstants.DarkYellow)
)
sweep_secondary: QColor = DC.field(
default_factory=lambda: QColor(QtCore.Qt.darkMagenta)
default_factory=lambda: QColor(QColorConstants.DarkMagenta)
)
swr: QColor = DC.field(default_factory=lambda: QColor(255, 0, 0, 128))
text: QColor = DC.field(default_factory=lambda: QColor(QtCore.Qt.black))
text: QColor = DC.field(
default_factory=lambda: QColor(QColorConstants.Black)
)
bands: QColor = DC.field(default_factory=lambda: QColor(128, 128, 128, 48))
@ -110,7 +112,7 @@ class Markers:
)
colored_names: bool = True
color_0: QColor = DC.field(
default_factory=lambda: QColor(QtCore.Qt.darkGray)
default_factory=lambda: QColor(QColorConstants.DarkGray)
)
color_1: QColor = DC.field(default_factory=lambda: QColor(255, 0, 0))
color_2: QColor = DC.field(default_factory=lambda: QColor(0, 255, 0))
@ -119,7 +121,7 @@ class Markers:
color_5: QColor = DC.field(default_factory=lambda: QColor(255, 0, 255))
color_6: QColor = DC.field(default_factory=lambda: QColor(255, 255, 0))
color_7: QColor = DC.field(
default_factory=lambda: QColor(QtCore.Qt.lightGray)
default_factory=lambda: QColor(QColorConstants.LightGray)
)

Wyświetl plik

@ -22,7 +22,7 @@ from typing import List
import serial
import numpy as np
from PyQt5 import QtGui
from PyQt6 import QtGui
from NanoVNASaver.Hardware.Serial import drain_serial, Interface
from NanoVNASaver.Hardware.VNA import VNA

Wyświetl plik

@ -19,7 +19,7 @@
import logging
import serial
from PyQt5 import QtGui
from PyQt6 import QtGui
from NanoVNASaver.Hardware.NanoVNA import NanoVNA
from NanoVNASaver.Hardware.Serial import Interface

Wyświetl plik

@ -22,7 +22,7 @@ from typing import List
import serial
import numpy as np
from PyQt5 import QtGui
from PyQt6 import QtGui
from NanoVNASaver.Hardware.Serial import drain_serial, Interface
from NanoVNASaver.Hardware.VNA import VNA

Wyświetl plik

@ -20,7 +20,7 @@ import logging
from time import sleep
from typing import List, Iterator, Set
from PyQt5 import QtGui
from PyQt6 import QtGui
from NanoVNASaver.Version import Version
from NanoVNASaver.Hardware.Serial import Interface, drain_serial

Wyświetl plik

@ -17,7 +17,7 @@
# You should have received a copy of the GNU General Public License
# along with this program. If not, see <https://www.gnu.org/licenses/>.
from PyQt5 import QtGui, QtWidgets, QtCore
from PyQt6 import QtGui, QtWidgets, QtCore
from NanoVNASaver.Formatting import format_frequency_inputs

Wyświetl plik

@ -16,7 +16,7 @@
#
# You should have received a copy of the GNU General Public License
# along with this program. If not, see <https://www.gnu.org/licenses/>.
from PyQt5 import QtCore
from PyQt6 import QtCore
from NanoVNASaver import RFTools
from NanoVNASaver.Formatting import (

Wyświetl plik

@ -19,8 +19,9 @@
import math
from typing import List
from PyQt5 import QtGui, QtWidgets, QtCore
from PyQt5.QtCore import pyqtSignal
from PyQt6 import QtGui, QtWidgets, QtCore
from PyQt6.QtCore import pyqtSignal
from PyQt6.QtGui import QColorConstants
from NanoVNASaver import RFTools
from NanoVNASaver.Formatting import (
@ -43,7 +44,7 @@ from NanoVNASaver.Inputs import MarkerFrequencyInputWidget as FrequencyInput
from NanoVNASaver.Marker.Values import TYPES, Value, default_label_ids
COLORS = (
QtGui.QColor(QtCore.Qt.darkGray),
QtGui.QColor(QColorConstants.DarkGray),
QtGui.QColor(255, 0, 0),
QtGui.QColor(0, 255, 0),
QtGui.QColor(0, 0, 255),
@ -90,7 +91,7 @@ class Marker(QtCore.QObject, Value):
self.frequencyInput = FrequencyInput()
self.frequencyInput.setMinimumHeight(20)
self.frequencyInput.setAlignment(QtCore.Qt.AlignRight)
self.frequencyInput.setAlignment(QtCore.Qt.AlignmentFlag.AlignRight)
self.frequencyInput.editingFinished.connect(
lambda: self.setFrequency(
parse_frequency(self.frequencyInput.text())
@ -117,7 +118,8 @@ class Marker(QtCore.QObject, Value):
self.btnColorPicker.clicked.connect(
lambda: self.setColor(
QtWidgets.QColorDialog.getColor(
self.color, options=QtWidgets.QColorDialog.ShowAlphaChannel
self.color,
options=QtWidgets.QColorDialog.ColorDialogOption.ShowAlphaChannel,
)
)
)
@ -148,7 +150,7 @@ class Marker(QtCore.QObject, Value):
self.setColor(COLORS[0])
line = QtWidgets.QFrame()
line.setFrameShape(QtWidgets.QFrame.VLine)
line.setFrameShape(QtWidgets.QFrame.Shape.VLine)
# line only if more then 3 selected
self.left_form = QtWidgets.QFormLayout()
@ -183,7 +185,7 @@ class Marker(QtCore.QObject, Value):
self.label["returnloss"].setMinimumWidth(int(80 * scale))
if self.coloredText:
color_string = QtCore.QVariant(self.color)
color_string.convert(QtCore.QVariant.String)
# color_string.convert(QtCore.QVariant.String)
self.group_box.setStyleSheet(
f"QGroupBox {{ color: {color_string.value()}; "
f"font-size: {self._size_str()}}};"
@ -230,11 +232,11 @@ class Marker(QtCore.QObject, Value):
if color.isValid():
self.color = color
p = self.btnColorPicker.palette()
p.setColor(QtGui.QPalette.ButtonText, self.color)
# TODO: p.setColor(QtGui.QPalette.ButtonText, self.color)
self.btnColorPicker.setPalette(p)
if self.coloredText:
color_string = QtCore.QVariant(color)
color_string.convert(QtCore.QVariant.String)
# TODO: color_string.convert(str)
self.group_box.setStyleSheet(
f"QGroupBox {{ color: {color_string.value()}; "
f"font-size: {self._size_str()}}};"

Wyświetl plik

@ -22,7 +22,7 @@ import sys
import threading
from time import strftime, localtime
from PyQt5 import QtWidgets, QtCore, QtGui
from PyQt6 import QtWidgets, QtCore, QtGui
from NanoVNASaver import Defaults
from .Windows import (
@ -95,8 +95,8 @@ class NanoVNASaver(QtWidgets.QWidget):
self.icon = QtGui.QIcon("icon_48x48.png")
self.setWindowIcon(self.icon)
self.settings = Defaults.AppSettings(
QtCore.QSettings.IniFormat,
QtCore.QSettings.UserScope,
QtCore.QSettings.Format.IniFormat,
QtCore.QSettings.Scope.UserScope,
"NanoVNASaver",
"NanoVNASaver",
)
@ -140,7 +140,9 @@ class NanoVNASaver(QtWidgets.QWidget):
self.baseTitle = f"NanoVNA Saver {NanoVNASaver.version}"
self.updateTitle()
layout = QtWidgets.QBoxLayout(QtWidgets.QBoxLayout.LeftToRight)
layout = QtWidgets.QBoxLayout(
QtWidgets.QBoxLayout.Direction.LeftToRight
)
scrollarea = QtWidgets.QScrollArea()
outer = QtWidgets.QVBoxLayout()
@ -151,12 +153,12 @@ class NanoVNASaver(QtWidgets.QWidget):
Defaults.cfg.gui.window_width, Defaults.cfg.gui.window_height
)
scrollarea.setSizePolicy(
QtWidgets.QSizePolicy.MinimumExpanding,
QtWidgets.QSizePolicy.MinimumExpanding,
QtWidgets.QSizePolicy.Policy.MinimumExpanding,
QtWidgets.QSizePolicy.Policy.MinimumExpanding,
)
self.setSizePolicy(
QtWidgets.QSizePolicy.MinimumExpanding,
QtWidgets.QSizePolicy.MinimumExpanding,
QtWidgets.QSizePolicy.Policy.MinimumExpanding,
QtWidgets.QSizePolicy.Policy.MinimumExpanding,
)
widget = QtWidgets.QWidget()
widget.setLayout(layout)
@ -236,7 +238,7 @@ class NanoVNASaver(QtWidgets.QWidget):
self.charts_layout = QtWidgets.QGridLayout()
QtWidgets.QShortcut(QtGui.QKeySequence("Ctrl+Q"), self, self.close)
QtGui.QShortcut(QtGui.QKeySequence("Ctrl+Q"), self, self.close)
###############################################################
# Create main layout
@ -388,8 +390,8 @@ class NanoVNASaver(QtWidgets.QWidget):
QtWidgets.QSpacerItem(
1,
1,
QtWidgets.QSizePolicy.Fixed,
QtWidgets.QSizePolicy.Expanding,
QtWidgets.QSizePolicy.Policy.Fixed,
QtWidgets.QSizePolicy.Policy.Expanding,
)
)

Wyświetl plik

@ -20,8 +20,8 @@ import contextlib
import logging
import typing
from PyQt5 import QtCore, QtGui
from PyQt5.QtCore import QModelIndex
from PyQt6 import QtCore, QtGui
from PyQt6.QtCore import QModelIndex, Qt
_DEFAULT_BANDS = (
"2200 m;135700;137800",
@ -58,12 +58,12 @@ class BandsModel(QtCore.QAbstractTableModel):
def __init__(self):
super().__init__()
self.settings = QtCore.QSettings(
QtCore.QSettings.IniFormat,
QtCore.QSettings.UserScope,
QtCore.QSettings.Format.IniFormat,
QtCore.QSettings.Scope.UserScope,
"NanoVNASaver",
"Bands",
)
self.settings.setIniCodec("UTF-8")
# self.settings.setIniCodec("UTF-8")
self.enabled = self.settings.value("ShowBands", False, bool)
self.bands = [
@ -91,16 +91,15 @@ class BandsModel(QtCore.QAbstractTableModel):
def data(self, index: QModelIndex, role: int = ...) -> QtCore.QVariant:
if role in [
QtCore.Qt.DisplayRole,
QtCore.Qt.ItemDataRole,
QtCore.Qt.EditRole,
Qt.ItemDataRole.DisplayRole,
Qt.ItemDataRole.EditRole,
]:
return QtCore.QVariant(self.bands[index.row()][index.column()])
if role == QtCore.Qt.TextAlignmentRole:
if role == Qt.ItemDataRole.TextAlignmentRole:
if index.column() == 0:
return QtCore.QVariant(QtCore.Qt.AlignCenter)
return QtCore.QVariant(Qt.AlignmentFlag.AlignCenter)
return QtCore.QVariant(
QtCore.Qt.AlignRight | QtCore.Qt.AlignVCenter
Qt.AlignmentFlag.AlignRight | Qt.AlignmentFlag.AlignVCenter
)
return QtCore.QVariant()
@ -141,22 +140,22 @@ class BandsModel(QtCore.QAbstractTableModel):
return True
def headerData(
self, section: int, orientation: QtCore.Qt.Orientation, role: int = ...
self, section: int, orientation: Qt.Orientation, role: int = ...
):
if (
role == QtCore.Qt.DisplayRole
and orientation == QtCore.Qt.Horizontal
role == Qt.ItemDataRole.DisplayRole
and orientation == Qt.Orientation.Horizontal
):
with contextlib.suppress(IndexError):
return _HEADER_DATA[section]
return None
def flags(self, index: QModelIndex) -> QtCore.Qt.ItemFlags:
def flags(self, index: QModelIndex) -> Qt.ItemFlag:
if index.isValid():
return QtCore.Qt.ItemFlags(
QtCore.Qt.ItemIsEditable
| QtCore.Qt.ItemIsEnabled
| QtCore.Qt.ItemIsSelectable
return Qt.ItemFlag(
Qt.ItemFlag.ItemIsEditable
| Qt.ItemFlag.ItemIsEnabled
| Qt.ItemFlag.ItemIsSelectable
)
super().flags(index)

Wyświetl plik

@ -21,8 +21,8 @@ from time import sleep
from typing import List, Tuple
import numpy as np
from PyQt5 import QtCore, QtWidgets
from PyQt5.QtCore import pyqtSlot, pyqtSignal
from PyQt6 import QtCore, QtWidgets
from PyQt6.QtCore import pyqtSlot, pyqtSignal
from NanoVNASaver.Calibration import correct_delay
from NanoVNASaver.RFTools import Datapoint

Wyświetl plik

@ -21,7 +21,7 @@ import logging
from time import strftime, localtime
from urllib import request, error
from PyQt5 import QtWidgets, QtCore
from PyQt6 import QtWidgets, QtCore, QtGui
from NanoVNASaver.About import VERSION_URL, INFO_URL
from NanoVNASaver.Version import Version
@ -41,7 +41,7 @@ class AboutWindow(QtWidgets.QWidget):
top_layout = QtWidgets.QHBoxLayout()
make_scrollable(self, top_layout)
QtWidgets.QShortcut(QtCore.Qt.Key_Escape, self, self.hide)
QtGui.QShortcut(QtCore.Qt.Key.Key_Escape, self, self.hide)
icon_layout = QtWidgets.QVBoxLayout()
top_layout.addLayout(icon_layout)

Wyświetl plik

@ -18,7 +18,8 @@
# along with this program. If not, see <https://www.gnu.org/licenses/>.
import logging
from PyQt5 import QtWidgets, QtCore
from PyQt6 import QtWidgets, QtCore, QtGui
from PyQt6.QtCore import Qt
from NanoVNASaver.Analysis.AntennaAnalysis import MagLoopAnalysis
from NanoVNASaver.Analysis.BandPassAnalysis import BandPassAnalysis
@ -49,7 +50,7 @@ class AnalysisWindow(QtWidgets.QWidget):
self.setWindowTitle("Sweep analysis")
self.setWindowIcon(self.app.icon)
QtWidgets.QShortcut(QtCore.Qt.Key_Escape, self, self.hide)
QtGui.QShortcut(QtCore.Qt.Key.Key_Escape, self, self.hide)
layout = QtWidgets.QVBoxLayout()
make_scrollable(self, layout)
@ -96,8 +97,8 @@ class AnalysisWindow(QtWidgets.QWidget):
analysis_box = QtWidgets.QGroupBox("Analysis")
analysis_box.setSizePolicy(
QtWidgets.QSizePolicy.MinimumExpanding,
QtWidgets.QSizePolicy.MinimumExpanding,
QtWidgets.QSizePolicy.Policy.MinimumExpanding,
QtWidgets.QSizePolicy.Policy.MinimumExpanding,
)
self.analysis_layout = QtWidgets.QVBoxLayout(analysis_box)
@ -126,8 +127,8 @@ class AnalysisWindow(QtWidgets.QWidget):
self.analysis.widget().show()
self.update()
def toggleAutomaticRun(self, state: QtCore.Qt.CheckState):
if state == QtCore.Qt.Checked:
def toggleAutomaticRun(self, state: Qt.CheckState):
if state == Qt.CheckState.Checked:
self.analysis_list.setDisabled(True)
self.app.dataAvailable.connect(self.runAnalysis)
else:

Wyświetl plik

@ -18,7 +18,7 @@
# along with this program. If not, see <https://www.gnu.org/licenses/>.
import logging
from PyQt5 import QtWidgets, QtCore
from PyQt6 import QtWidgets, QtCore, QtGui
logger = logging.getLogger(__name__)
@ -31,7 +31,7 @@ class BandsWindow(QtWidgets.QWidget):
self.setWindowTitle("Manage bands")
self.setWindowIcon(self.app.icon)
QtWidgets.QShortcut(QtCore.Qt.Key_Escape, self, self.hide)
QtGui.QShortcut(QtCore.Qt.Key.Key_Escape, self, self.hide)
layout = QtWidgets.QVBoxLayout()
self.setLayout(layout)

Wyświetl plik

@ -20,7 +20,7 @@
import logging
from functools import partial
from PyQt5 import QtWidgets, QtCore
from PyQt6 import QtWidgets, QtCore, QtGui
from NanoVNASaver.Calibration import Calibration
from NanoVNASaver.Settings.Sweep import SweepMode
@ -51,11 +51,11 @@ class CalibrationWindow(QtWidgets.QWidget):
self.setWindowTitle("Calibration")
self.setWindowIcon(self.app.icon)
self.setSizePolicy(
QtWidgets.QSizePolicy.MinimumExpanding,
QtWidgets.QSizePolicy.MinimumExpanding,
QtWidgets.QSizePolicy.Policy.MinimumExpanding,
QtWidgets.QSizePolicy.Policy.MinimumExpanding,
)
QtWidgets.QShortcut(QtCore.Qt.Key_Escape, self, self.hide)
QtGui.QShortcut(QtCore.Qt.Key.Key_Escape, self, self.hide)
top_layout = QtWidgets.QHBoxLayout()
left_layout = QtWidgets.QVBoxLayout()
@ -106,7 +106,7 @@ class CalibrationWindow(QtWidgets.QWidget):
self.input_offset_delay.setMinimumHeight(20)
self.input_offset_delay.setValue(0)
self.input_offset_delay.setSuffix(" ps")
self.input_offset_delay.setAlignment(QtCore.Qt.AlignRight)
self.input_offset_delay.setAlignment(QtCore.Qt.AlignmentFlag.AlignRight)
self.input_offset_delay.valueChanged.connect(self.setOffsetDelay)
self.input_offset_delay.setRange(-10e6, 10e6)

Wyświetl plik

@ -18,7 +18,7 @@
# along with this program. If not, see <https://www.gnu.org/licenses/>.
import logging
from PyQt5 import QtWidgets
from PyQt6 import QtWidgets
logger = logging.getLogger(__name__)

Wyświetl plik

@ -18,7 +18,7 @@
# along with this program. If not, see <https://www.gnu.org/licenses/>.
import logging
from PyQt5 import QtWidgets, QtCore
from PyQt6 import QtWidgets, QtCore, QtGui
from NanoVNASaver.Windows.Defaults import make_scrollable
from NanoVNASaver.Windows.Screenshot import ScreenshotWindow
@ -34,7 +34,7 @@ class DeviceSettingsWindow(QtWidgets.QWidget):
self.setWindowTitle("Device settings")
self.setWindowIcon(self.app.icon)
QtWidgets.QShortcut(QtCore.Qt.Key_Escape, self, self.hide)
QtGui.QShortcut(QtCore.Qt.Key.Key_Escape, self, self.hide)
self.label = {
"status": QtWidgets.QLabel("Not connected."),

Wyświetl plik

@ -19,7 +19,8 @@
import logging
from typing import List
from PyQt5 import QtWidgets, QtCore, QtGui
from PyQt6 import QtWidgets, QtCore, QtGui
from PyQt6.QtGui import QColorConstants
from NanoVNASaver import Defaults
from NanoVNASaver.Charts.Chart import Chart, ChartColors
@ -41,7 +42,7 @@ class DisplaySettingsWindow(QtWidgets.QWidget):
self.marker_window = MarkerSettingsWindow(self.app)
self.callback_params = {}
QtWidgets.QShortcut(QtCore.Qt.Key_Escape, self, self.hide)
QtGui.QShortcut(QtCore.Qt.Key.Key_Escape, self, self.hide)
layout = QtWidgets.QHBoxLayout()
make_scrollable(self, layout)
@ -95,7 +96,7 @@ class DisplaySettingsWindow(QtWidgets.QWidget):
self.pointSizeInput.setMinimum(1)
self.pointSizeInput.setMaximum(10)
self.pointSizeInput.setSuffix(" px")
self.pointSizeInput.setAlignment(QtCore.Qt.AlignRight)
self.pointSizeInput.setAlignment(QtCore.Qt.AlignmentFlag.AlignRight)
self.pointSizeInput.valueChanged.connect(self.changePointSize)
display_options_layout.addRow("Point size", self.pointSizeInput)
@ -107,7 +108,7 @@ class DisplaySettingsWindow(QtWidgets.QWidget):
self.lineThicknessInput.setMinimum(1)
self.lineThicknessInput.setMaximum(10)
self.lineThicknessInput.setSuffix(" px")
self.lineThicknessInput.setAlignment(QtCore.Qt.AlignRight)
self.lineThicknessInput.setAlignment(QtCore.Qt.AlignmentFlag.AlignRight)
self.lineThicknessInput.valueChanged.connect(self.changeLineThickness)
display_options_layout.addRow("Line thickness", self.lineThicknessInput)
@ -119,7 +120,7 @@ class DisplaySettingsWindow(QtWidgets.QWidget):
self.markerSizeInput.setMaximum(20)
self.markerSizeInput.setSingleStep(2)
self.markerSizeInput.setSuffix(" px")
self.markerSizeInput.setAlignment(QtCore.Qt.AlignRight)
self.markerSizeInput.setAlignment(QtCore.Qt.AlignmentFlag.AlignRight)
self.markerSizeInput.valueChanged.connect(self.changeMarkerSize)
display_options_layout.addRow("Marker size", self.markerSizeInput)
@ -452,7 +453,9 @@ class DisplaySettingsWindow(QtWidgets.QWidget):
self.callback_params[cp] = (setting, attr)
cp.clicked.connect(self.setColor)
p = cp.palette()
p.setColor(QtGui.QPalette.ButtonText, getattr(Chart.color, attr))
p.setColor(
QtGui.QPalette.ColorRole.ButtonText, getattr(Chart.color, attr)
)
cp.setPalette(p)
return cp
@ -526,13 +529,13 @@ class DisplaySettingsWindow(QtWidgets.QWidget):
def changeDarkMode(self):
state = self.dark_mode_option.isChecked()
Defaults.cfg.gui.dark_mode = bool(state)
Chart.color.foreground = QtGui.QColor(QtCore.Qt.lightGray)
Chart.color.foreground = QtGui.QColor(QColorConstants.LightGray)
if state:
Chart.color.background = QtGui.QColor(QtCore.Qt.black)
Chart.color.text = QtGui.QColor(QtCore.Qt.white)
Chart.color.background = QtGui.QColor(QColorConstants.Black)
Chart.color.text = QtGui.QColor(QColorConstants.White)
else:
Chart.color.background = QtGui.QColor(QtCore.Qt.white)
Chart.color.text = QtGui.QColor(QtCore.Qt.black)
Chart.color.background = QtGui.QColor(QColorConstants.White)
Chart.color.text = QtGui.QColor(QColorConstants.Black)
Chart.color.swr = Chart.color.swr
self.updateCharts()

Wyświetl plik

@ -18,7 +18,7 @@
# along with this program. If not, see <https://www.gnu.org/licenses/>.
import logging
from PyQt5 import QtWidgets, QtCore
from PyQt6 import QtWidgets, QtCore, QtGui
from NanoVNASaver.Touchstone import Touchstone
from NanoVNASaver.RFTools import Datapoint
from NanoVNASaver.Windows.Defaults import make_scrollable
@ -34,7 +34,7 @@ class FilesWindow(QtWidgets.QWidget):
self.setWindowTitle("Files")
self.setWindowIcon(self.app.icon)
self.setMinimumWidth(200)
QtWidgets.QShortcut(QtCore.Qt.Key_Escape, self, self.hide)
QtGui.QShortcut(QtCore.Qt.Key.Key_Escape, self, self.hide)
file_window_layout = QtWidgets.QVBoxLayout()
make_scrollable(self, file_window_layout)

Wyświetl plik

@ -18,7 +18,8 @@
# along with this program. If not, see <https://www.gnu.org/licenses/>.
import logging
from PyQt5 import QtWidgets, QtCore, QtGui
from PyQt6 import QtWidgets, QtCore, QtGui
from PyQt6.QtCore import Qt
from NanoVNASaver.RFTools import Datapoint
from NanoVNASaver.Marker.Widget import Marker
@ -46,7 +47,7 @@ class MarkerSettingsWindow(QtWidgets.QWidget):
self.setWindowTitle("Marker settings")
self.setWindowIcon(self.app.icon)
QtWidgets.QShortcut(QtCore.Qt.Key_Escape, self, self.cancelButtonClick)
QtGui.QShortcut(QtCore.Qt.Key.Key_Escape, self, self.cancelButtonClick)
self.exampleMarker = Marker("Example marker")
layout = QtWidgets.QVBoxLayout()
@ -115,12 +116,12 @@ class MarkerSettingsWindow(QtWidgets.QWidget):
self.exampleMarker.updateLabels(self.exampleData11, self.exampleData21)
def updateField(self, field: QtGui.QStandardItem):
if field.checkState() == QtCore.Qt.Checked:
if field.checkState() == Qt.CheckState.Checked:
if field.data() not in self.currentFieldSelection:
self.currentFieldSelection = []
for i in range(self.model.rowCount()):
field = self.model.item(i, 0)
if field.checkState() == QtCore.Qt.Checked:
if field.checkState() == Qt.CheckState.Checked:
self.currentFieldSelection.append(field.data())
elif field.data() in self.currentFieldSelection:
self.currentFieldSelection.remove(field.data())
@ -161,7 +162,7 @@ class MarkerSettingsWindow(QtWidgets.QWidget):
item.setCheckable(True)
item.setEditable(False)
if label.label_id in self.currentFieldSelection:
item.setCheckState(QtCore.Qt.Checked)
item.setCheckState(Qt.CheckState.Checked)
self.model.appendRow(item)
self.active_labels_view.setModel(self.model)
self.model.itemChanged.connect(self.updateField)

Wyświetl plik

@ -17,7 +17,7 @@
# You should have received a copy of the GNU General Public License
# along with this program. If not, see <https://www.gnu.org/licenses/>.
import logging
from PyQt5 import QtWidgets, QtCore, QtGui
from PyQt6 import QtWidgets, QtCore, QtGui
logger = logging.getLogger(__name__)
@ -30,18 +30,20 @@ class ScreenshotWindow(QtWidgets.QLabel):
self.setWindowTitle("Screenshot")
# TODO : self.setWindowIcon(self.app.icon)
QtWidgets.QShortcut(QtCore.Qt.Key_Escape, self, self.hide)
self.setContextMenuPolicy(QtCore.Qt.ActionsContextMenu)
QtGui.QShortcut(QtCore.Qt.Key.Key_Escape, self, self.hide)
self.setContextMenuPolicy(
QtCore.Qt.ContextMenuPolicy.ActionsContextMenu
)
self.action_original_size = QtWidgets.QAction("Original size")
self.action_original_size = QtGui.QAction("Original size")
self.action_original_size.triggered.connect(lambda: self.setScale(1))
self.action_2x_size = QtWidgets.QAction("2x size")
self.action_2x_size = QtGui.QAction("2x size")
self.action_2x_size.triggered.connect(lambda: self.setScale(2))
self.action_3x_size = QtWidgets.QAction("3x size")
self.action_3x_size = QtGui.QAction("3x size")
self.action_3x_size.triggered.connect(lambda: self.setScale(3))
self.action_4x_size = QtWidgets.QAction("4x size")
self.action_4x_size = QtGui.QAction("4x size")
self.action_4x_size.triggered.connect(lambda: self.setScale(4))
self.action_5x_size = QtWidgets.QAction("5x size")
self.action_5x_size = QtGui.QAction("5x size")
self.action_5x_size.triggered.connect(lambda: self.setScale(5))
self.addAction(self.action_original_size)
@ -49,7 +51,7 @@ class ScreenshotWindow(QtWidgets.QLabel):
self.addAction(self.action_3x_size)
self.addAction(self.action_4x_size)
self.addAction(self.action_5x_size)
self.action_save_screenshot = QtWidgets.QAction("Save image")
self.action_save_screenshot = QtGui.QAction("Save image")
self.action_save_screenshot.triggered.connect(self.saveScreenshot)
self.addAction(self.action_save_screenshot)

Wyświetl plik

@ -18,7 +18,8 @@
# along with this program. If not, see <https://www.gnu.org/licenses/>.
import logging
from functools import partial
from PyQt5 import QtWidgets, QtCore
from PyQt6 import QtWidgets, QtCore, QtGui
from PyQt6.QtCore import Qt
from NanoVNASaver.Formatting import (
format_frequency_short,
@ -39,7 +40,7 @@ class SweepSettingsWindow(QtWidgets.QWidget):
self.setWindowTitle("Sweep settings")
self.setWindowIcon(self.app.icon)
QtWidgets.QShortcut(QtCore.Qt.Key_Escape, self, self.hide)
QtGui.QShortcut(QtCore.Qt.Key.Key_Escape, self, self.hide)
layout = QtWidgets.QVBoxLayout()
make_scrollable(self, layout)
@ -114,7 +115,11 @@ class SweepSettingsWindow(QtWidgets.QWidget):
layout.addRow(label)
checkbox = QtWidgets.QCheckBox("Logarithmic sweep")
checkbox.setMinimumHeight(20)
checkbox.setCheckState(self.app.sweep.properties.logarithmic)
checkbox.setCheckState(
Qt.CheckState.Checked
if self.app.sweep.properties.logarithmic
else Qt.CheckState.Unchecked
)
checkbox.toggled.connect(
lambda: self.update_logarithmic(checkbox.isChecked())
)
@ -224,12 +229,12 @@ class SweepSettingsWindow(QtWidgets.QWidget):
)
start = int(
self.band_list.model()
.data(index_start, QtCore.Qt.ItemDataRole)
.data(index_start, Qt.ItemDataRole.EditRole)
.value()
)
stop = int(
self.band_list.model()
.data(index_stop, QtCore.Qt.ItemDataRole)
.data(index_stop, Qt.ItemDataRole.EditRole)
.value()
)

Wyświetl plik

@ -25,7 +25,7 @@ import numpy as np
from scipy.signal import convolve
from scipy.constants import speed_of_light
from PyQt5 import QtWidgets, QtCore
from PyQt6 import QtWidgets, QtCore, QtGui
from NanoVNASaver.Windows.Defaults import make_scrollable
@ -84,7 +84,7 @@ class TDRWindow(QtWidgets.QWidget):
self.setWindowTitle("TDR")
self.setWindowIcon(self.app.icon)
QtWidgets.QShortcut(QtCore.Qt.Key_Escape, self, self.hide)
QtGui.QShortcut(QtCore.Qt.Key.Key_Escape, self, self.hide)
layout = QtWidgets.QFormLayout()
make_scrollable(self, layout)

Wyświetl plik

@ -30,7 +30,7 @@ import argparse
import logging
import sys
from PyQt5 import QtWidgets, QtCore
from PyQt6 import QtWidgets
from NanoVNASaver.About import VERSION, INFO
from NanoVNASaver.NanoVNASaver import NanoVNASaver
@ -90,7 +90,6 @@ def main():
logger.info("Startup...")
QtWidgets.QApplication.setAttribute(QtCore.Qt.AA_EnableHighDpiScaling, True)
app = QtWidgets.QApplication(sys.argv)
window = NanoVNASaver()
window.show()
@ -106,7 +105,7 @@ def main():
window.setReference(t.s11, t.s21, args.ref_file)
window.dataUpdated()
try:
app.exec_()
app.exec()
except BaseException as exc:
logger.exception("%s", exc)
raise exc