Python 基于pyqt5的雷达方程
一、利用Qt Designer设计出GUI框架
左边为各类参数的控制拦,右边为数据显示框,因为只想控制功率(pt)和目标截面积(sigma)进行控制,所以这两个控件设置为可调节,其余控件设为不可调节。
二、将生成的ui文件转成py文件,以方便后续调用
下面展示一些
内联代码片
。
#-*- coding: utf-8 -*-
#Form implementation generated from reading ui file 'formulation.ui'
#Created by: PyQt5 UI code generator 5.13.0
#WARNING! All changes made in this file will be lost!
from PyQt5 import QtCore, QtGui, QtWidgets
class Ui_Form(object):
def setupUi(self, Form):
Form.setObjectName("Form")
Form.resize(800, 556)
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Expanding)
sizePolicy.setHorizontalStretch(0)
sizePolicy.setVerticalStretch(0)
sizePolicy.setHeightForWidth(Form.sizePolicy().hasHeightForWidth())
Form.setSizePolicy(sizePolicy)
Form.setMinimumSize(QtCore.QSize(800, 550))
icon = QtGui.QIcon()
icon.addPixmap(QtGui.QPixmap(":/startImage/purple.png"), QtGui.QIcon.Normal, QtGui.QIcon.Off)
Form.setWindowIcon(icon)
Form.setStyleSheet("QWidget#Form{\n"
" border-image: url(:/formulation_img/formulation_img.jpg);\n"
"}")
self.horizontalLayout = QtWidgets.QHBoxLayout(Form)
self.horizontalLayout.setContentsMargins(4, 0, 0, 0)
self.horizontalLayout.setSpacing(0)
self.horizontalLayout.setObjectName("horizontalLayout")
self.widget = QtWidgets.QWidget(Form)
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Expanding)
sizePolicy.setHorizontalStretch(0)
sizePolicy.setVerticalStretch(0)
sizePolicy.setHeightForWidth(self.widget.sizePolicy().hasHeightForWidth())
self.widget.setSizePolicy(sizePolicy)
self.widget.setStyleSheet("")
self.widget.setObjectName("widget")
self.gridLayout = QtWidgets.QGridLayout(self.widget)
self.gridLayout.setContentsMargins(20, 20, 10, 20)
self.gridLayout.setSpacing(15)
self.gridLayout.setObjectName("gridLayout")
self.te_dsb = QtWidgets.QDoubleSpinBox(self.widget)
self.te_dsb.setEnabled(False)
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Expanding)
sizePolicy.setHorizontalStretch(0)
sizePolicy.setVerticalStretch(0)
sizePolicy.setHeightForWidth(self.te_dsb.sizePolicy().hasHeightForWidth())
self.te_dsb.setSizePolicy(sizePolicy)
self.te_dsb.setMinimumSize(QtCore.QSize(100, 25))
self.te_dsb.setDecimals(0)
self.te_dsb.setMaximum(1500.0)
self.te_dsb.setProperty("value", 290.0)
self.te_dsb.setObjectName("te_dsb")
self.gridLayout.addWidget(self.te_dsb, 4, 1, 1, 1)
self.pt_dsb = QtWidgets.QDoubleSpinBox(self.widget)
self.pt_dsb.setEnabled(True)
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Expanding)
sizePolicy.setHorizontalStretch(0)
sizePolicy.setVerticalStretch(0)
sizePolicy.setHeightForWidth(self.pt_dsb.sizePolicy().hasHeightForWidth())
self.pt_dsb.setSizePolicy(sizePolicy)
self.pt_dsb.setMinimumSize(QtCore.QSize(100, 25))
self.pt_dsb.setDecimals(1)
self.pt_dsb.setMinimum(0.1)
self.pt_dsb.setProperty("value", 1.5)
self.pt_dsb.setObjectName("pt_dsb")
self.gridLayout.addWidget(self.pt_dsb, 0, 1, 1, 1)
self.label_6 = QtWidgets.QLabel(self.widget)
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Expanding)
sizePolicy.setHorizontalStretch(0)
sizePolicy.setVerticalStretch(0)
sizePolicy.setHeightForWidth(self.label_6.sizePolicy().hasHeightForWidth())
self.label_6.setSizePolicy(sizePolicy)
self.label_6.setMinimumSize(QtCore.QSize(0, 0))
font = QtGui.QFont()
font.setPointSize(10)
font.setBold(True)
font.setWeight(75)
self.label_6.setFont(font)
self.label_6.setStyleSheet("QLabel{\n"
"background-color: rgb(255, 255, 255);\n"
"border: 1px solid rgb(0, 0, 0);\n"
"}")
self.label_6.setAlignment(QtCore.Qt.AlignCenter)
self.label_6.setObjectName("label_6")
self.gridLayout.addWidget(self.label_6, 5, 0, 1, 1)
self.label_3 = QtWidgets.QLabel(self.widget)
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Expanding)
sizePolicy.setHorizontalStretch(0)
sizePolicy.setVerticalStretch(0)
sizePolicy.setHeightForWidth(self.label_3.sizePolicy().hasHeightForWidth())
self.label_3.setSizePolicy(sizePolicy)
self.label_3.setMinimumSize(QtCore.QSize(0, 0))
font = QtGui.QFont()
font.setPointSize(10)
font.setBold(True)
font.setWeight(75)
self.label_3.setFont(font)
self.label_3.setStyleSheet("QLabel{\n"
"background-color: rgb(255, 255, 255);\n"
"border: 1px solid rgb(0, 0, 0);\n"
"}")
self.label_3.setAlignment(QtCore.Qt.AlignCenter)
self.label_3.setObjectName("label_3")
self.gridLayout.addWidget(self.label_3, 2, 0, 1, 1)
self.label_4 = QtWidgets.QLabel(self.widget)
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Expanding)
sizePolicy.setHorizontalStretch(0)
sizePolicy.setVerticalStretch(0)
sizePolicy.setHeightForWidth(self.label_4.sizePolicy().hasHeightForWidth())
self.label_4.setSizePolicy(sizePolicy)
self.label_4.setMinimumSize(QtCore.QSize(0, 0))
font = QtGui.QFont()
font.setPointSize(10)
font.setBold(True)
font.setWeight(75)
self.label_4.setFont(font)
self.label_4.setStyleSheet("QLabel{\n"
"background-color: rgb(255, 255, 255);\n"
"border: 1px solid rgb(0, 0, 0);\n"
"}")
self.label_4.setAlignment(QtCore.Qt.AlignCenter)
self.label_4.setObjectName("label_4")
self.gridLayout.addWidget(self.label_4, 3, 0, 1, 1)
self.range_dsb = QtWidgets.QDoubleSpinBox(self.widget)
self.range_dsb.setEnabled(False)
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Expanding)
sizePolicy.setHorizontalStretch(0)
sizePolicy.setVerticalStretch(0)
sizePolicy.setHeightForWidth(self.range_dsb.sizePolicy().hasHeightForWidth())
self.range_dsb.setSizePolicy(sizePolicy)
self.range_dsb.setMinimumSize(QtCore.QSize(100, 25))
self.range_dsb.setDecimals(0)
self.range_dsb.setSingleStep(0.1)
self.range_dsb.setProperty("value", 25.0)
self.range_dsb.setObjectName("range_dsb")
self.gridLayout.addWidget(self.range_dsb, 8, 1, 1, 1)
self.label_7 = QtWidgets.QLabel(self.widget)
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Expanding)
sizePolicy.setHorizontalStretch(0)
sizePolicy.setVerticalStretch(0)
sizePolicy.setHeightForWidth(self.label_7.sizePolicy().hasHeightForWidth())
self.label_7.setSizePolicy(sizePolicy)
self.label_7.setMinimumSize(QtCore.QSize(0, 0))
font = QtGui.QFont()
font.setPointSize(10)
font.setBold(True)
font.setWeight(75)
self.label_7.setFont(font)
self.label_7.setStyleSheet("QLabel{\n"
"background-color: rgb(255, 255, 255);\n"
"border: 1px solid rgb(0, 0, 0);\n"
"}")
self.label_7.setAlignment(QtCore.Qt.AlignCenter)
self.label_7.setObjectName("label_7")
self.gridLayout.addWidget(self.label_7, 6, 0, 1, 1)
self.label_5 = QtWidgets.QLabel(self.widget)
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Expanding)
sizePolicy.setHorizontalStretch(0)
sizePolicy.setVerticalStretch(0)
sizePolicy.setHeightForWidth(self.label_5.sizePolicy().hasHeightForWidth())
self.label_5.setSizePolicy(sizePolicy)
self.label_5.setMinimumSize(QtCore.QSize(0, 0))
font = QtGui.QFont()
font.setPointSize(10)
font.setBold(True)
font.setWeight(75)
self.label_5.setFont(font)
self.label_5.setStyleSheet("QLabel{\n"
"background-color: rgb(255, 255, 255);\n"
"border: 1px solid rgb(0, 0, 0);\n"
"}")
self.label_5.setAlignment(QtCore.Qt.AlignCenter)
self.label_5.setObjectName("label_5")
self.gridLayout.addWidget(self.label_5, 4, 0, 1, 1)
self.label = QtWidgets.QLabel(self.widget)
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Expanding)
sizePolicy.setHorizontalStretch(0)
sizePolicy.setVerticalStretch(0)
sizePolicy.setHeightForWidth(self.label.sizePolicy().hasHeightForWidth())
self.label.setSizePolicy(sizePolicy)
self.label.setMinimumSize(QtCore.QSize(20, 0))
font = QtGui.QFont()
font.setPointSize(10)
font.setBold(True)
font.setWeight(75)
self.label.setFont(font)
self.label.setStyleSheet("QLabel{\n"
"background-color: rgb(255, 255, 255);\n"
"border: 1px solid rgb(0, 0, 0);\n"
"}")
self.label.setAlignment(QtCore.Qt.AlignCenter)
self.label.setObjectName("label")
self.gridLayout.addWidget(self.label, 0, 0, 1, 1)
self.g_dsb = QtWidgets.QDoubleSpinBox(self.widget)
self.g_dsb.setEnabled(False)
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Expanding)
sizePolicy.setHorizontalStretch(0)
sizePolicy.setVerticalStretch(0)
sizePolicy.setHeightForWidth(self.g_dsb.sizePolicy().hasHeightForWidth())
self.g_dsb.setSizePolicy(sizePolicy)
self.g_dsb.setMinimumSize(QtCore.QSize(100, 25))
self.g_dsb.setDecimals(0)
self.g_dsb.setMinimum(-50.0)
self.g_dsb.setMaximum(50.0)
self.g_dsb.setSingleStep(5.0)
self.g_dsb.setStepType(QtWidgets.QAbstractSpinBox.DefaultStepType)
self.g_dsb.setProperty("value", 45.0)
self.g_dsb.setObjectName("g_dsb")
self.gridLayout.addWidget(self.g_dsb, 2, 1, 1, 1)
self.label_2 = QtWidgets.QLabel(self.widget)
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Expanding)
sizePolicy.setHorizontalStretch(0)
sizePolicy.setVerticalStretch(0)
sizePolicy.setHeightForWidth(self.label_2.sizePolicy().hasHeightForWidth())
self.label_2.setSizePolicy(sizePolicy)
self.label_2.setMinimumSize(QtCore.QSize(0, 0))
font = QtGui.QFont()
font.setPointSize(10)
font.setBold(True)
font.setWeight(75)
self.label_2.setFont(font)
self.label_2.setStyleSheet("QLabel{\n"
"background-color: rgb(255, 255, 255);\n"
"border: 1px solid rgb(0, 0, 0);\n"
"}")
self.label_2.setAlignment(QtCore.Qt.AlignCenter)
self.label_2.setObjectName("label_2")
self.gridLayout.addWidget(self.label_2, 1, 0, 1, 1)
self.freq_dsb = QtWidgets.QDoubleSpinBox(self.widget)
self.freq_dsb.setEnabled(False)
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Expanding)
sizePolicy.setHorizontalStretch(0)
sizePolicy.setVerticalStretch(0)
sizePolicy.setHeightForWidth(self.freq_dsb.sizePolicy().hasHeightForWidth())
self.freq_dsb.setSizePolicy(sizePolicy)
self.freq_dsb.setMinimumSize(QtCore.QSize(100, 25))
self.freq_dsb.setPrefix("")
self.freq_dsb.setDecimals(1)
self.freq_dsb.setProperty("value", 5.6)
self.freq_dsb.setObjectName("freq_dsb")
self.gridLayout.addWidget(self.freq_dsb, 1, 1, 1, 1)
self.loss_dsb = QtWidgets.QDoubleSpinBox(self.widget)
self.loss_dsb.setEnabled(False)
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Expanding)
sizePolicy.setHorizontalStretch(0)
sizePolicy.setVerticalStretch(0)
sizePolicy.setHeightForWidth(self.loss_dsb.sizePolicy().hasHeightForWidth())
self.loss_dsb.setSizePolicy(sizePolicy)
self.loss_dsb.setMinimumSize(QtCore.QSize(100, 25))
self.loss_dsb.setDecimals(0)
self.loss_dsb.setSingleStep(0.1)
self.loss_dsb.setProperty("value", 6.0)
self.loss_dsb.setObjectName("loss_dsb")
self.gridLayout.addWidget(self.loss_dsb, 7, 1, 1, 1)
self.b_dsb = QtWidgets.QDoubleSpinBox(self.widget)
self.b_dsb.setEnabled(False)
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Expanding)
sizePolicy.setHorizontalStretch(0)
sizePolicy.setVerticalStretch(0)
sizePolicy.setHeightForWidth(self.b_dsb.sizePolicy().hasHeightForWidth())
self.b_dsb.setSizePolicy(sizePolicy)
self.b_dsb.setMinimumSize(QtCore.QSize(100, 25))
self.b_dsb.setDecimals(0)
self.b_dsb.setMaximum(50.0)
self.b_dsb.setProperty("value", 5.0)
self.b_dsb.setObjectName("b_dsb")
self.gridLayout.addWidget(self.b_dsb, 5, 1, 1, 1)
self.label_9 = QtWidgets.QLabel(self.widget)
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Expanding)
sizePolicy.setHorizontalStretch(0)
sizePolicy.setVerticalStretch(0)
sizePolicy.setHeightForWidth(self.label_9.sizePolicy().hasHeightForWidth())
self.label_9.setSizePolicy(sizePolicy)
self.label_9.setMinimumSize(QtCore.QSize(0, 0))
font = QtGui.QFont()
font.setPointSize(10)
font.setBold(True)
font.setWeight(75)
self.label_9.setFont(font)
self.label_9.setStyleSheet("QLabel{\n"
"background-color: rgb(255, 255, 255);\n"
"border: 1px solid rgb(0, 0, 0);\n"
"}")
self.label_9.setAlignment(QtCore.Qt.AlignCenter)
self.label_9.setObjectName("label_9")
self.gridLayout.addWidget(self.label_9, 8, 0, 1, 1)
self.sigma_dsb = QtWidgets.QDoubleSpinBox(self.widget)
self.sigma_dsb.setEnabled(True)
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Expanding)
sizePolicy.setHorizontalStretch(0)
sizePolicy.setVerticalStretch(0)
sizePolicy.setHeightForWidth(self.sigma_dsb.sizePolicy().hasHeightForWidth())
self.sigma_dsb.setSizePolicy(sizePolicy)
self.sigma_dsb.setMinimumSize(QtCore.QSize(100, 25))
self.sigma_dsb.setDecimals(0)
self.sigma_dsb.setMinimum(-30.0)
self.sigma_dsb.setMaximum(30.0)
self.sigma_dsb.setSingleStep(5.0)
self.sigma_dsb.setProperty("value", -10.0)
self.sigma_dsb.setObjectName("sigma_dsb")
self.gridLayout.addWidget(self.sigma_dsb, 3, 1, 1, 1)
self.label_8 = QtWidgets.QLabel(self.widget)
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Expanding)
sizePolicy.setHorizontalStretch(0)
sizePolicy.setVerticalStretch(0)
sizePolicy.setHeightForWidth(self.label_8.sizePolicy().hasHeightForWidth())
self.label_8.setSizePolicy(sizePolicy)
self.label_8.setMinimumSize(QtCore.QSize(0, 0))
font = QtGui.QFont()
font.setPointSize(10)
font.setBold(True)
font.setWeight(75)
self.label_8.setFont(font)
self.label_8.setStyleSheet("QLabel{\n"
"background-color: rgb(255, 255, 255);\n"
"border: 1px solid rgb(0, 0, 0);\n"
"}")
self.label_8.setAlignment(QtCore.Qt.AlignCenter)
self.label_8.setObjectName("label_8")
self.gridLayout.addWidget(self.label_8, 7, 0, 1, 1)
self.nf_dsb = QtWidgets.QDoubleSpinBox(self.widget)
self.nf_dsb.setEnabled(False)
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Expanding)
sizePolicy.setHorizontalStretch(0)
sizePolicy.setVerticalStretch(0)
sizePolicy.setHeightForWidth(self.nf_dsb.sizePolicy().hasHeightForWidth())
self.nf_dsb.setSizePolicy(sizePolicy)
self.nf_dsb.setMinimumSize(QtCore.QSize(100, 25))
self.nf_dsb.setDecimals(0)
self.nf_dsb.setMaximum(50.0)
self.nf_dsb.setProperty("value", 3.0)
self.nf_dsb.setObjectName("nf_dsb")
self.gridLayout.addWidget(self.nf_dsb, 6, 1, 1, 1)
self.gridLayout.setColumnStretch(0, 5)
self.horizontalLayout.addWidget(self.widget)
self.widget_2 = QtWidgets.QWidget(Form)
self.widget_2.setStyleSheet("")
self.widget_2.setObjectName("widget_2")
self.horizontalLayout.addWidget(self.widget_2)
self.horizontalLayout.setStretch(1, 7)
self.retranslateUi(Form)
self.sigma_dsb.valueChanged['double'].connect(Form.update_line)
self.pt_dsb.valueChanged['double'].connect(Form.update_line)
QtCore.QMetaObject.connectSlotsByName(Form)
def retranslateUi(self, Form):
_translate = QtCore.QCoreApplication.translate
Form.setWindowTitle(_translate("Form", "雷达方程"))
self.te_dsb.setSuffix(_translate("Form", " K"))
self.pt_dsb.setSuffix(_translate("Form", " MW"))
self.label_6.setText(_translate("Form", "b"))
self.label_3.setText(_translate("Form", "g"))
self.label_4.setText(_translate("Form", "sigma"))
self.range_dsb.setSuffix(_translate("Form", "-165 Km"))
self.label_7.setText(_translate("Form", "nf"))
self.label_5.setText(_translate("Form", "te"))
self.label.setText(_translate("Form", "pt"))
self.g_dsb.setSuffix(_translate("Form", " dB"))
self.label_2.setText(_translate("Form", "freq"))
self.freq_dsb.setSuffix(_translate("Form", " GHz"))
self.loss_dsb.setSuffix(_translate("Form", " dB"))
self.b_dsb.setSuffix(_translate("Form", " MHz"))
self.label_9.setText(_translate("Form", "range"))
self.sigma_dsb.setSuffix(_translate("Form", " dB"))
self.label_8.setText(_translate("Form", "loss"))
self.nf_dsb.setSuffix(_translate("Form", " dB"))
import resources.resource_rc
if __name__ == "__main__":
import sys
app = QtWidgets.QApplication(sys.argv)
Form = QtWidgets.QWidget()
ui = Ui_Form()
ui.setupUi(Form)
Form.show()
sys.exit(app.exec_())
三、重新创建一个py文件,调用之前的文件,并设置相关的控制信号
from PyQt5.Qt import *
from submenu.formulation import Ui_Form
import numpy as np
import matplotlib
matplotlib.use("Qt5Agg")
from matplotlib.backends.backend_qt5agg import FigureCanvasQTAgg as FigureCanvas
from matplotlib.figure import Figure
import matplotlib as plt
class RadarEqu:
def __init__(self, pt, freq, g, sigma, te, b, nf, loss):
c = 3e8
self.lamd = 10*np.log10(c / (freq * 1e9))
self.pt = 10*np.log10(pt*1e6)
self.freq = 10*np.log10(freq*1e9)
self.g = g
self.sigma = sigma
self.te = 10*np.log10(te)
self.b = 10*np.log10(b*1e6)
self.nf = nf
self.loss = loss
self.r = np.linspace(25e3, 165e3, 1000)
def calculate_snr(self):
r_db= 10 * np.log10(self.r**4)
num = self.pt + 2 * self.g + 2 * self.lamd + self.sigma
den = 3*10*np.log10(4*np.pi) + 10*np.log10(1.38e-23) + self.te + self.b + self.nf + self.loss + r_db
snr = num - den
return snr
class MyFigure(FigureCanvas):
def __init__(self, value_dict={}):
plt.rcParams['font.sans-serif'] = ["SimHei"]
plt.rcParams['axes.unicode_minus'] = False
self.fig = Figure()
super().__init__(self.fig)
self.calculate_dict = value_dict
self.pt = self.calculate_dict['pt']
self.freq = self.calculate_dict['freq']
self.g = self.calculate_dict['g']
self.sigma = self.calculate_dict['sigma']
self.te = self.calculate_dict['te']
self.b = self.calculate_dict['b']
self.nf = self.calculate_dict['nf']
self.loss = self.calculate_dict['loss']
axes1 = self.fig.add_subplot(111)
axes1.grid(True)
axes1.set_title('功率孔径积-检测距离')
axes1.set_ylabel("功率孔径积 /dB")
axes1.set_xlabel("检测距离 /Km")
axes1.set_xlim(left=20, right=180)
axes1.set_ylim(bottom=-10, top=50)
self.axes1 = axes1
def plot_sigma_km(self):
radar_eq = RadarEqu(self.pt, self.freq, self.g, self.sigma, self.te, self.b, self.nf, self.loss)
snr = radar_eq.calculate_snr()
r_km = radar_eq.r/1000
self.axes1.plot(r_km, snr)
class FormulationPane(QWidget, Ui_Form):
def __init__(self):
super().__init__()
self.setAttribute(Qt.WA_StyledBackground, True)
self.setupUi(self)
pt = self.pt_dsb.value()
freq = self.freq_dsb.value()
g = self.g_dsb.value()
sigma = self.sigma_dsb.value()
te = self.te_dsb.value()
b = self.b_dsb.value()
nf = self.nf_dsb.value()
loss = self.loss_dsb.value()
current_dict = {'pt': pt, 'freq': freq, "g": g, "sigma": sigma, "te": te, "b": b, "nf": nf, "loss": loss}
self.current_dict = current_dict
self.F = MyFigure(value_dict=self.current_dict)
self.layout = QGridLayout(self.widget_2)
self.layout.addWidget(self.F)
self.F.plot_sigma_km()
def update_line(self):
if self.sigma_dsb.value() != self.current_dict["sigma"]:
sigma = self.sigma_dsb.value()
self.current_dict["sigma"] = sigma
if self.pt_dsb.value() != self.current_dict['pt']:
pt = self.pt_dsb.value()
self.current_dict['pt'] = pt
self.layout.removeWidget(self.F)
self.F = MyFigure(value_dict=self.current_dict)
self.layout.addWidget(self.F)
self.F.plot_sigma_km()
if __name__ == '__main__':
import sys
app = QApplication(sys.argv)
window = FormulationPane()
window.show()
sys.exit(app.exec_())
调用程序,启动的效果如下图:
扫描下方二维码,关注“海海读书”公众号,回复“雷达方程”,即可获得程序原代码