PyQt5/ Channel to Freq




import sys

from PyQt5.QtGui import QFont
from PyQt5.QtWidgets import (
    QApplication,
    QVBoxLayout,
    QLabel,
    QTabWidget,
    QWidget,
    QInputDialog,
    QPushButton,
    QGridLayout,
)


class Window(QWidget):
    def __init__(self):
        super().__init__()
        self.setWindowTitle("频点转换")
        OuterLayout = QVBoxLayout() # 创建整体最外层的垂直分布
        
        self.setLayout(OuterLayout)

        tabs = QTabWidget()
        tabs.addTab(self.Channel_to_Freq_UI(), "Channel to Freq")

        writer_label = QLabel('@rambo.gj.zhong@mail.foxconn.com',self)
        writer_label.setFont(QFont("Calibri",12))

        OuterLayout.addWidget(tabs)
        OuterLayout.addWidget(writer_label)


    def Channel_to_Freq_UI(self):
        Channel_op = QWidget()
        layout = QVBoxLayout()
        Channel_op.setLayout(layout)

        tabsCTF = QTabWidget()
        tabsCTF.addTab(self.GSM_CTF_UI(),"GSM")
        tabsCTF.addTab(self.WCDMA_CTF_UI(),"WCDMA")
        tabsCTF.addTab(self.LTE_CTF_UI(),"LTE")
        tabsCTF.addTab(self.NR_CTF_UI(),"NR")

        layout.addWidget(tabsCTF)
        return Channel_op



######### --- 设置 GSM页面

    def GSM_CTF_UI(self):
        GSM_UI = QWidget()
        layout = QVBoxLayout()

        GSM_formula_label = QLabel(
        "GSM Channel to Freq 转换公式:" +  "\n" +  

        "If Band =  'GSM850(B5)' or 'DCS1800(B3)' or 'PCS1900(B2)' :" +  "\n" + 
        "       DL_Freq = DL_MinFreq + 0.2*(Channel - DL_MinChannel)" +  "\n" + 
        "       UL_Freq = UL_MinFreq + 0.2*(Channel - UL_MinChannel)" +   "\n" + 
        "If Band =  'EGSM900(B8)' :" +  "\n" + 
        "       DL_Freq = 935(MHz) + 0.2*(Channel - DL_MinChannel)" +  "\n" + 
        "       UL_Freq = 890(MHz) + 0.2*(Channel - UL_MinChannel)" +   "\n" +
  
        "注释:" +  "\n" +  
        "1.  (U)DL_MinFreq:  对应Band 的 DL 与 UL 的最小频率" +  "\n" + 
        "2.  Channel: 已知的 Channel, 待计算成频率对应关系的 Channel" +  "\n" + 
        "3.  (U)DL_MinChannel: 对应的 Band 的 UL 与 DL 的最小 Channel" 
        )

        sub_QGridlayout = QGridLayout()
        GSMEdit_Band_btn = QPushButton('Enter            Band:',self)
        GSMEdit_Band_btn.clicked.connect(self.enterGSM_Band)
        self.GSMEdit_Band = QLabel(self)
        sub_QGridlayout.addWidget(GSMEdit_Band_btn,0,0)
        sub_QGridlayout.addWidget(self.GSMEdit_Band,0,1)

        
        GSMEdit_MinFreq_btn = QPushButton('Enter       MinFreq:',self)
        GSMEdit_MinFreq_btn.clicked.connect(self.enterGSM_MinFreq)
        self.GSMEdit_MinFreq = QLabel(self)

        sub_QGridlayout.addWidget(GSMEdit_MinFreq_btn,1,0)
        sub_QGridlayout.addWidget(self.GSMEdit_MinFreq,1,1)


        
        GSMEdit_Channel_btn = QPushButton('Enter       Channel:',self)
        GSMEdit_Channel_btn.clicked.connect(self.enterGSM_Channel)
        self.GSMEdit_Channel = QLabel(self)
        sub_QGridlayout.addWidget(GSMEdit_Channel_btn,2,0)
        sub_QGridlayout.addWidget(self.GSMEdit_Channel,2,1)

        
        GSMEdit_MinChannel_btn = QPushButton('Enter MinChannel:',self)
        GSMEdit_MinChannel_btn.clicked.connect(self.enterGSM_MinChannel)
        self.GSMEdit_MinChannel = QLabel(self)
        sub_QGridlayout.addWidget(GSMEdit_MinChannel_btn,3,0)
        sub_QGridlayout.addWidget(self.GSMEdit_MinChannel,3,1)

        
        GSMResult_Calculate_btn = QPushButton('Calculate:',self)
        GSMResult_Calculate_btn.clicked.connect(self.GSM_calculate)
        self.GSMResult_Calculate = QLabel(self)
        sub_QGridlayout.addWidget(GSMResult_Calculate_btn,4,0)
        sub_QGridlayout.addWidget(self.GSMResult_Calculate,4,1)


        layout.addWidget(GSM_formula_label)
        layout.addLayout(sub_QGridlayout)


        GSM_UI.setLayout(layout)
        return GSM_UI

######### --- 设置 GSM各个按钮功能 
    def enterGSM_Band(self):
        self.GSM_Bandtext,ok = QInputDialog.getText(self,'Input Band','输入规则: \nSMT所用到的 GSM的Band有四个: \nGSM850 (B5) \nDCS1800 (B3) \nPCS1900 (B2) \nEGSM900 (B8) ')
        if ok:
            self.GSMEdit_Band.setText(str(self.GSM_Bandtext))

    def enterGSM_MinFreq(self):
        self.GSMEdit_MinFreqtext,ok = QInputDialog.getDouble(self,'Input MinFreq','输入规则: \n根据官网<http://www.sqimway.com/> \n查询对应 Band 的最小Freq,单位MHz')
        if ok:
            self.GSMEdit_MinFreq.setText(str((f'{self.GSMEdit_MinFreqtext} MHz')))

    def enterGSM_Channel(self):
        self.GSMEdit_Channeltext,ok = QInputDialog.getInt(self,'Input Channel','输入规则: \n输入需要求证的Channel')
        if ok:
            self.GSMEdit_Channel.setText(str(self.GSMEdit_Channeltext))

    def enterGSM_MinChannel(self):
        self.GSMEdit_MinChanneltext,ok = QInputDialog.getInt(self,'Input MinChannel','输入规则: \n根据官网<http://www.sqimway.com/> \n查询对应 Band 的最小Channel,上行对应上行, 下行对应下行; \n官网的对应名词为: Arfcn ')
        if ok:
            self.GSMEdit_MinChannel.setText(str(self.GSMEdit_MinChanneltext))

    def GSM_calculate(self):
        MinFreq = self.GSMEdit_MinFreqtext 
        Channel = self.GSMEdit_Channeltext
        MinChannel = self.GSMEdit_MinChanneltext
        # list_GSM_Band = ['GSM850','DCS1800','PCS1900','EGSM900']

        # if self.GSM_Bandtext in list_GSM_Band:

        GSM_Result = (MinFreq + 0.2*(Channel - MinChannel))
        self.GSMResult_Calculate.setText((f'Freq = MinFreq + 0.2*(Channel - MinChannel) \n={MinFreq} + 0.2*({Channel} - {MinChannel})\n={round(GSM_Result,3)}(MHz)\n={round(GSM_Result*1000000,3)}(hz)'))
  
        # elif self.GSM_Bandtext == "EGSM900":

        #     GSM_Result = (MinFreq + 0.2*(Channel - MinChannel))
        #     self.GSMResult_Calculate.setText((f'Freq = MinFreq + 0.2*(Channel - MinChannel) \n={MinFreq} + 0.2*({Channel} - {MinChannel})\n={round(GSM_Result,3)}(MHz)\n={round(GSM_Result*1000000,3)}(hz)'))
  
        # else:
        #     text_error = ("输入的 Band格式不正确,请重新输入Band")
        #     self.GSMResult_Calculate.setText(str(text_error))


######### --- 设置 WCDMA页面
    def WCDMA_CTF_UI(self):
        WCDMA_UI = QWidget()
        layout = QVBoxLayout()
        
        WCDMA_formula_label = QLabel(
        "WCDMA Channel to Freq 转换公式:" +  "\n" +   
        "If Band =  'Band 1' or 'Band 2' or 'Band 5' :" +  "\n" + 
        "       DL_Freq = 0(MinFreq) + 0.2*Channel" +  "\n" + 
        "       UL_Freq = 0(MinFreq) + 0.2*Channel" +   "\n" + 

        "If Band =  'Band 4' :" +  "\n" + 
        "       DL_Freq = 1805(MHz) + 0.2*Channel" +  "\n" + 
        "       UL_Freq = 1450(MHz) + 0.2*Channel" +   "\n" +

        "If Band =  'Band 8' :" +  "\n" + 
        "       DL_Freq = 340(MHz) + 0.2*Channel" +  "\n" + 
        "       UL_Freq = 340(MHz) + 0.2*Channel" +   "\n" +
 
        "注释:" +  "\n" +  
        "1.  Channel: 已知的 Channel, 待计算成频率对应关系的 Channel。"
  
        )

        sub_QGridlayout = QGridLayout()

        WCDMAEdit_Band_btn = QPushButton('Enter            Band:',self)
        WCDMAEdit_Band_btn.clicked.connect(self.enterWCDMA_Band)
        self.WCDMAEdit_Band = QLabel(self)
        sub_QGridlayout.addWidget(WCDMAEdit_Band_btn,0,0)
        sub_QGridlayout.addWidget(self.WCDMAEdit_Band,0,1)

        
        WCDMAEdit_MinFreq_btn = QPushButton('Enter       MinFreq:',self)
        WCDMAEdit_MinFreq_btn.clicked.connect(self.enterWCDMA_MinFreq)
        self.WCDMAEdit_MinFreq = QLabel(self)
        sub_QGridlayout.addWidget(WCDMAEdit_MinFreq_btn,1,0)
        sub_QGridlayout.addWidget(self.WCDMAEdit_MinFreq,1,1)


        WCDMAEdit_Channel_btn = QPushButton('Enter       Channel:',self)
        WCDMAEdit_Channel_btn.clicked.connect(self.enterWCDMA_Channel)
        self.WCDMAEdit_Channel = QLabel(self)
        sub_QGridlayout.addWidget(WCDMAEdit_Channel_btn,2,0)
        sub_QGridlayout.addWidget(self.WCDMAEdit_Channel,2,1)


        WCDMAResult_Calculate_btn = QPushButton('Calculate:',self)
        WCDMAResult_Calculate_btn.clicked.connect(self.WCDMA_calculate)
        self.WCDMAResult_Calculate = QLabel(self)
        sub_QGridlayout.addWidget(WCDMAResult_Calculate_btn,3,0)
        sub_QGridlayout.addWidget(self.WCDMAResult_Calculate,3,1)


        layout.addWidget(WCDMA_formula_label)
        layout.addLayout(sub_QGridlayout)

        WCDMA_UI.setLayout(layout)
        return WCDMA_UI


######### --- 设置 WCDMA各个按钮功能 
    def enterWCDMA_Band(self):
        list_WCDMA_Band = ['Band 1','Band 2','Band 5']
        self.WCDMA_Bandtext,ok = QInputDialog.getText(self,'Input Band','输入规则: \nSMT所用到的 WCDMA的Band有5个: \nB1 \nB2 \nB5 \nB4 \nB8 ')
        if ok:
            self.WCDMAEdit_Band.setText(str(self.WCDMA_Bandtext))

        if self.WCDMA_Bandtext in list_WCDMA_Band:
            self.WCDMAEdit_MinFreq.setText(str("0"))
    
    def enterWCDMA_MinFreq(self):
        self.WCDMAEdit_MinFreqtext,ok = QInputDialog.getDouble(self,'Input MinFreq','输入规则: \n如果是Band 4 则DL为:1805; UL 为:1450; \n如果是Band 8 则UL/DL为: 340;\n其余不用输入单位MHz')
        if ok:
            self.WCDMAEdit_MinFreq.setText(str((f'{self.WCDMAEdit_MinFreqtext} MHz')))

    def enterWCDMA_Channel(self):
        self.WCDMAEdit_Channeltext,ok = QInputDialog.getInt(self,'Input Channel','输入规则: \n输入需要求证的Channel')
        if ok:
            self.WCDMAEdit_Channel.setText(str(self.WCDMAEdit_Channeltext))

    def WCDMA_calculate(self):
        Channel = self.WCDMAEdit_Channeltext
        MinFreq = self.WCDMAEdit_MinFreqtext
        WCDMA_Result = (MinFreq + 0.2*Channel)
        self.WCDMAResult_Calculate.setText((f'Freq = MinFreq + 0.2*Channel \n={MinFreq} + 0.2*{Channel}\n={round(WCDMA_Result,3)}(MHz)\n={round(WCDMA_Result*1000000,3)}(hz)'))


######### --- 设置 LTE页面
    def LTE_CTF_UI(self):
        LTE_UI = QWidget()
        layout = QVBoxLayout()
        
        LTE_formula_label = QLabel(
        "LTE Channel to Freq 转换公式:" +  "\n" +  
        
        "  DL_Freq = DL_MinFreq + 0.1*(Channel - DL_MinChannel)" +  "\n" + 
        "  UL_Freq = UL_MinFreq + 0.1*(Channel - UL_MinChannel)" +   "\n" + 

        
        "注释:" +  "\n" +  
        "1.  (U)DL_MinFreq:  对应Band 的 DL 与 UL 的最小频率" +  "\n" + 
        "2.  Channel: 已知的 Channel, 待计算成频率对应关系的 Channel" +  "\n" + 
        "3.  (U)DL_MinChannel: 对应的 Band 的 UL 与 DL 的最小 Channel" 
        )

        sub_QGridlayout = QGridLayout()

        LTEEdit_Band_btn = QPushButton('Enter            Band:',self)
        LTEEdit_Band_btn.clicked.connect(self.enterLTE_Band)
        self.LTEEdit_Band = QLabel(self)
        sub_QGridlayout.addWidget(LTEEdit_Band_btn,0,0)
        sub_QGridlayout.addWidget(self.LTEEdit_Band,0,1)

        
        LTEEdit_MinFreq_btn = QPushButton('Enter       MinFreq:',self)
        LTEEdit_MinFreq_btn.clicked.connect(self.enterLTE_MinFreq)
        self.LTEEdit_MinFreq = QLabel(self)
        sub_QGridlayout.addWidget(LTEEdit_MinFreq_btn,1,0)
        sub_QGridlayout.addWidget(self.LTEEdit_MinFreq,1,1)


        LTEEdit_Channel_btn = QPushButton('Enter       Channel:',self)
        LTEEdit_Channel_btn.clicked.connect(self.enterLTE_Channel)
        self.LTEEdit_Channel = QLabel(self)
        sub_QGridlayout.addWidget(LTEEdit_Channel_btn,2,0)
        sub_QGridlayout.addWidget(self.LTEEdit_Channel,2,1)


        LTEEdit_MinChannel_btn = QPushButton('Enter MinChannel:',self)
        LTEEdit_MinChannel_btn.clicked.connect(self.enterLTE_MinChannel)
        self.LTEEdit_MinChannel = QLabel(self)
        sub_QGridlayout.addWidget(LTEEdit_MinChannel_btn,3,0)
        sub_QGridlayout.addWidget(self.LTEEdit_MinChannel,3,1)

        
        LTEResult_Calculate_btn = QPushButton('Calculate:',self)
        LTEResult_Calculate_btn.clicked.connect(self.LTE_calculate)
        self.LTEResult_Calculate = QLabel(self)
        sub_QGridlayout.addWidget(LTEResult_Calculate_btn,4,0)
        sub_QGridlayout.addWidget(self.LTEResult_Calculate,4,1)


        layout.addWidget(LTE_formula_label)
        layout.addLayout(sub_QGridlayout)

        LTE_UI.setLayout(layout)
        return LTE_UI
######### --- 设置 LTE各个按钮功能 
    def enterLTE_Band(self):
        self.LTE_Bandtext,ok = QInputDialog.getText(self,'Input Band','输入规则: \n如要输入 Band 511 则输入: B511 ')
        if ok:
            self.LTEEdit_Band.setText(str(self.LTE_Bandtext))

    def enterLTE_MinFreq(self):
        self.LTEEdit_MinFreqtext,ok = QInputDialog.getDouble(self,'Input MinFreq','输入规则: \n根据官网<http://www.sqimway.com/> \n查询对应 Band 的最小Freq,单位MHz')
        if ok:
            self.LTEEdit_MinFreq.setText(str((f'{self.LTEEdit_MinFreqtext} MHz')))

    def enterLTE_Channel(self):
        self.LTEEdit_Channeltext,ok = QInputDialog.getInt(self,'Input Channel','输入规则: \n输入需要求证的Channel')
        if ok:
            self.LTEEdit_Channel.setText(str(self.LTEEdit_Channeltext))

    def enterLTE_MinChannel(self):
        self.LTEEdit_MinChanneltext,ok = QInputDialog.getInt(self,'Input MinChannel','输入规则: \n根据官网<http://www.sqimway.com/> \n查询对应 Band 的最小Channel,上行对应上行, 下行对应下行; \n官网的对应名词为: Arfcn ')
        if ok:
            self.LTEEdit_MinChannel.setText(str(self.LTEEdit_MinChanneltext))

    def LTE_calculate(self):
        MinFreq = self.LTEEdit_MinFreqtext 
        Channel = self.LTEEdit_Channeltext
        MinChannel = self.LTEEdit_MinChanneltext
        LTE_Result = (MinFreq + 0.1*(Channel - MinChannel))
        self.LTEResult_Calculate.setText((f'Freq = MinFreq + 0.1*(Channel - MinChannel) \n={MinFreq} + 0.1*({Channel} - {MinChannel})\n={round(LTE_Result,3)}(MHz)\n={round(LTE_Result*1000000,3)}(hz)'))

######### --- 设置 NR页面
    def NR_CTF_UI(self):
        NR_UI = QWidget()
        layout = QVBoxLayout()
        NR_formula_label = QLabel(
        "NR Channel to Freq 转换公式:" +  "\n" +  
 
        "      DL_Freq = DL_MinFreq + △F*(Channel - DL_MinChannel)" +  "\n" + 
        "      UL_Freq = UL_MinFreq + △F*(Channel - UL_MinChannel)" +   "\n" + 
  
        "If Channel = [0-599999]: " + "\n" + 
        "      freq = [0-3000]MHz; △F = 5 kHz" + "\n" + 
        "If Channel = [600000-2016666]: " +   "\n" + 
        "      freq = [3000-24250]MHz; △F = 15 kHz" + "\n" + 
        "If Channel = [2016667-3279167]:  " +   "\n" + 
        "      freq = [24250080-100000000]kHz; △F = 60 kHz" + "\n" + 

        "注释:" +  "\n" +  
        "1.  (U)DL_MinFreq:  对应Band 的 DL 与 UL 的最小频率" +  "\n" + 
        "2.  Channel: 已知的 Channel, 待计算成频率对应关系的 Channel" +  "\n" + 
        "3.  (U)DL_MinChannel: 对应的 Band 的 UL 与 DL 的最小 Channel" 
        )

        sub_QGridlayout = QGridLayout()

        NREdit_Band_btn = QPushButton('Enter            Band:',self)
        NREdit_Band_btn.clicked.connect(self.enterNR_Band)
        self.NREdit_Band = QLabel(self)
        sub_QGridlayout.addWidget(NREdit_Band_btn,0,0)
        sub_QGridlayout.addWidget(self.NREdit_Band,0,1)

        
        NREdit_MinFreq_btn = QPushButton('Enter       MinFreq:',self)
        NREdit_MinFreq_btn.clicked.connect(self.enterNR_MinFreq)
        self.NREdit_MinFreq = QLabel('输入Channel后自动配置',self)
        sub_QGridlayout.addWidget(NREdit_MinFreq_btn,1,0)
        sub_QGridlayout.addWidget(self.NREdit_MinFreq,1,1)


        
        NREdit_Channel_btn = QPushButton('Enter       Channel:',self)
        NREdit_Channel_btn.clicked.connect(self.enterNR_Channel)
        self.NREdit_Channel = QLabel(self)
        sub_QGridlayout.addWidget(NREdit_Channel_btn,2,0)
        sub_QGridlayout.addWidget(self.NREdit_Channel,2,1)

        
        NREdit_MinChannel_btn = QPushButton('Enter MinChannel:',self)
        NREdit_MinChannel_btn.clicked.connect(self.enterNR_MinChannel)
        self.NREdit_MinChannel = QLabel('输入Channel后自动配置',self)
        sub_QGridlayout.addWidget(NREdit_MinChannel_btn,3,0)
        sub_QGridlayout.addWidget(self.NREdit_MinChannel,3,1)

        
        NRResult_Calculate_btn = QPushButton('Calculate:',self)
        NRResult_Calculate_btn.clicked.connect(self.NR_calculate)
        self.NRResult_Calculate = QLabel(self)
        sub_QGridlayout.addWidget(NRResult_Calculate_btn,4,0)
        sub_QGridlayout.addWidget(self.NRResult_Calculate,4,1)


        layout.addWidget(NR_formula_label)
        layout.addLayout(sub_QGridlayout)

        NR_UI.setLayout(layout)
        return NR_UI
######### --- 设置 NR各个按钮功能 
    def enterNR_Band(self):
        self.NR_Bandtext,ok = QInputDialog.getText(self,'Input Band','输入规则: \n如要输入 Band 79 则输入: n79 ')
        if ok:
            self.NREdit_Band.setText(str(self.NR_Bandtext))

    def enterNR_MinFreq(self):
        self.NREdit_MinFreqtext,ok = QInputDialog.getDouble(self,'Input MinFreq','输入规则: \n根据官网<http://www.sqimway.com/> \n查询输入对应 Band 的最小Freq\n注意:必须单位MHz换算成kHz')
        if ok:
            self.NREdit_MinFreq.setText(str(self.NREdit_MinFreqtext))

    def enterNR_Channel(self):
        self.NREdit_Channeltext,ok = QInputDialog.getInt(self,'Input Channel','输入规则: \n输入需要求证的Channel')
        if ok:
            self.NREdit_Channel.setText(str(self.NREdit_Channeltext))

        NRCH1 = range(0,599999)
        NRCH2 = range(60000,2016666)
        NRCH3 = range(2016667,3279167)

        if self.NREdit_Channeltext in NRCH1:
            self.NREdit_MinFreq.setText(str("0kHz"))
            self.NREdit_MinChannel.setText(str("0"))
            self.NREdit_MinFreqtext = int('0')
            self.NREdit_MinChanneltext = int('0')

        elif self.NREdit_Channeltext in NRCH2:
            self.NREdit_MinFreq.setText(str("3000000kHz"))
            self.NREdit_MinChannel.setText(str("600000"))
            self.NREdit_MinFreqtext = int(3000000)
            self.NREdit_MinChanneltext = int(600000)

        elif self.NREdit_Channeltext in NRCH3:
            self.NREdit_MinFreq.setText(str("24250080kHz"))
            self.NREdit_MinChannel.setText(str("2016667"))
            self.NREdit_MinFreqtext = int('24250080')
            self.NREdit_MinChanneltext = int('2016667')


    def enterNR_MinChannel(self):
        self.NREdit_MinChanneltext,ok = QInputDialog.getInt(self,'Input MinChannel','输入规则: \n根据官网<http://www.sqimway.com/> \n查询对应 Band 的最小Channel,上行对应上行, 下行对应下行; \n官网的对应名词为: Arfcn ')
        if ok:
            self.NREdit_MinChannel.setText(str(self.NREdit_MinChanneltext))

    def NR_calculate(self):
        MinFreq = self.NREdit_MinFreqtext 
        Channel = self.NREdit_Channeltext
        MinChannel = self.NREdit_MinChanneltext
        tF = 0 
        NRCH1 = range(0,599999)
        NRCH2 = range(60000,2016666)
        NRCH3 = range(2016667,3279167)
    
        if Channel in NRCH1:
            tF = 5
            NR_Result = (MinFreq + tF*(Channel - MinChannel))
            self.NRResult_Calculate.setText((f'Freq = MinFreq + △F*(Channel - MinChannel) \n={MinFreq} + {tF}*({Channel} - {MinChannel})\n={round(NR_Result,3)}(kHz)\n={round(NR_Result*1000,3)}(hz)'))
  
        elif Channel in NRCH2:
            tF = 15
            NR_Result = (MinFreq + tF*(Channel - MinChannel))
            self.NRResult_Calculate.setText((f'Freq = MinFreq + △F*(Channel - MinChannel) \n={MinFreq} + {tF}*({Channel} - {MinChannel})\n={round(NR_Result,3)}(kHz)\n={round(NR_Result*1000,3)}(hz)'))
  
        elif Channel in NRCH3:
            tF= 60
            NR_Result = (MinFreq + tF*(Channel - MinChannel))
            self.NRResult_Calculate.setText((f'Freq = MinFreq + △F*(Channel - MinChannel) \n={MinFreq} + {tF}*({Channel} - {MinChannel})\n={round(NR_Result,3)}(kHz)\n={round(NR_Result*1000,3)}(hz)'))
    
if __name__ == "__main__":
    app = QApplication(sys.argv)
    window = Window()
    window.show()
    sys.exit(app.exec_())

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值