天天看点

NG Toolset开发笔记--NgMainWin

开发NG Toolset的目的有2个:

(1) 、将原来LTE Toolset V1/V2的部分工具,用Python重写;

(2)、增加5GNR的部分工具。长期计划是探索与构造Deep Learning在RAN NPO中的应用。

因为LTE Toolset V1/V2使用Qt/C++实现的,所以NG Toolset的UI会用PyQt实现:

'''
ngmainwin.py
'''
from PyQt5.QtWidgets import QMainWindow, QAction, QMenu, QTabWidget, QTextEdit, QMessageBox
from PyQt5.QtWidgets import qApp, QApplication
from PyQt5.QtCore import Qt
from PyQt5.QtSql import QSqlDatabase
#-->import plugins
from ngltegridui import NgLteGridUi

 class NgMainWin(QMainWindow):
    def __init__(self):
        super().__init__()
        self.enableDebug = False
        self.tabWidget = QTabWidget()
        self.tabWidget.setTabsClosable(True)
        self.logEdit = QTextEdit()
        self.tabWidget.addTab(self.logEdit, 'log')
       
        self.createActions()
        self.createMenus()
       
        self.setCentralWidget(self.tabWidget)
        self.setWindowTitle('NG Toolset')
        self.setWindowFlags(self.windowFlags() or Qt.WindowMinMaxButtonsHint)
        self.setWindowState(self.windowState() or Qt.WindowMaximized)
        self.tabWidget.tabCloseRequested.connect(self.onTabCloseRequested)
           

ngapp.py非常简洁:

'''
ngapp.py
'''
import sys
from PyQt5.QtWidgets import QApplication
from ngmainwin import NgMainWin

app = QApplication(sys.argv)
mainWin = NgMainWin()
mainWin.show()
sys.exit(app.exec_())
           

第一个移植的工具是LTE Resource Grid,即LTE资源栅格。后续会用于NB-IoT及5GNR的resource grid开发。