Python 基于pyqt5的雷达方程
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, QtWidgetsclass 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.translateForm.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_rcif __name__ == "__main__":import sysapp = 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 pltclass RadarEqu:def __init__(self, pt, freq, g, sigma, te, b, nf, loss):c = 3e8self.lamd = 10*np.log10(c / (freq * 1e9))self.pt = 10*np.log10(pt*1e6)self.freq = 10*np.log10(freq*1e9)self.g = gself.sigma = sigmaself.te = 10*np.log10(te)self.b = 10*np.log10(b*1e6)self.nf = nfself.loss = lossself.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.sigmaden = 3*10*np.log10(4*np.pi) + 10*np.log10(1.38e-23) + self.te + self.b + self.nf + self.loss + r_dbsnr = num - denreturn snrclass MyFigure(FigureCanvas):def __init__(self, value_dict={}):plt.rcParams['font.sans-serif'] = ["SimHei"]plt.rcParams['axes.unicode_minus'] = Falseself.fig = Figure()super().__init__(self.fig)self.calculate_dict = value_dictself.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 = axes1def 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/1000self.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_dictself.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"] = sigmaif self.pt_dsb.value() != self.current_dict['pt']:pt = self.pt_dsb.value()self.current_dict['pt'] = ptself.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 sysapp = QApplication(sys.argv)window = FormulationPane()window.show()sys.exit(app.exec_())
调用程序,启动的效果如下图:

扫描下方二维码,关注“海海读书”公众号,回复“雷达方程”,即可获得程序原代码

本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!
