• PyQt 小程序


    在这里插入图片描述

    设备管理程序 v0.0.1.0, 终于出了一个基础版本,… …

    两个字典的键值判断

    在这里插入图片描述

    辛亏用的是Python 这个编码时间大大缩短了

    对已有的命令行进行GUI 化

    from typing import Optional
    import PySide6.QtCore
    import PySide6.QtWidgets
    from cmd_ui import Ui_MainWindow
    from PySide6.QtWidgets import *
    from PySide6.QtCore import *
    from PySide6.QtGui import *
    import sys
    from paramiko import *
    import time
    
    def Except(func):
        def WARRPER(self):
            try:
                func(self)
            except:
                QMessageBox.information(self,"Except","exec error")
        return WARRPER
                
    class MainWindow(QMainWindow):
        def __init__(self, parent=None) -> None:
            super().__init__(parent)
            self.ui = Ui_MainWindow()
            self.ui.setupUi(self)
            self.ui.Get.clicked.connect(self.link)
            self.log=self.ui.textBrowser.append
            self.ui.cmd_1.clicked.connect(self.cmd1)
            self.ui.cmd_2.clicked.connect(self.cmd2)
            self.ui.cmd_3.clicked.connect(self.cmd3)
            self.ui.cmd_4.clicked.connect(self.cmd4)
            self.ui.cmd_5.clicked.connect(self.cmd5)
        
        @Except
        def link(self):
                self.ui.List1.clear()
                self.ui.List2.clear()
                self.ui.List3.clear()
                self.ui.List4.clear()
                self.ui.List5.clear()
                self.__ssh__=SSHClient()
                self.__ssh__.set_missing_host_key_policy(AutoAddPolicy())
                self.__ssh__.connect(hostname=self.ui.ip.text(),port=22,username="root",password="root")
                stdin,stdout,stderr = self.__ssh__.exec_command("source /etc/profile && fun -h")
                res=list(map(lambda x: x.replace('\r', ''),stdout.read().decode().split('\n')))
                self.log(stderr.read().decode())
                Res=res[1:-2]
                self.ui.List1.addItems(Res)
                self.ui.List2.addItems(Res)
                self.ui.List3.addItems(Res)
                self.ui.List4.addItems(Res)
                self.ui.List5.addItems(Res)
                print(Res)
                
        def ShowLog(self,cmd,msg):
            self.log("[ %-8s ] %s: %s"%(time.strftime("%Y%m%d %H:%M:%S",time.localtime()),cmd,msg))
            
        @Except
        def cmd1(self):
            CMD="source /etc/profile && fun %s %s"%(self.ui.List1.currentText(),self.ui.cmd_one.text())
            stdin,stdout,stderr=self.__ssh__.exec_command(CMD)
            self.ShowLog(self.ui.List1.currentText(),stdout.read().decode())
            self.ShowLog(self.ui.List1.currentText(),stderr.read().decode())
    
        @Except
        def cmd2(self):
            stdin,stdout,stderr=self.__ssh__.exec_command("source /etc/profile && fun %s %s"%(self.ui.List2.currentText(),self.ui.cmd_two.text()))
            self.ShowLog(self.ui.List2.currentText(),stdout.read().decode())
            self.ShowLog(self.ui.List2.currentText(),stderr.read().decode())
        
        @Except
        def cmd3(self):
            stdin,stdout,stderr=self.__ssh__.exec_command("source /etc/profile && fun %s %s"%(self.ui.List3.currentText(),self.ui.cmd_three.text()))
            self.ShowLog(self.ui.List3.currentText(),stdout.read().decode())
            self.ShowLog(self.ui.List3.currentText(),stderr.read().decode())
        
        @Except
        def cmd4(self):
            stdin,stdout,stderr=self.__ssh__.exec_command("source /etc/profile && fun %s %s\r\n"%(self.ui.List4.currentText(),self.ui.cmd_four.text()))
            self.ShowLog(self.ui.List4.currentText(),stdout.read().decode())
            self.ShowLog(self.ui.List4.currentText(),stderr.read().decode())
    
        @Except
        def cmd5(self):
            stdin,stdout,stderr=self.__ssh__.exec_command("source /etc/profile && fun %s %s"%(self.ui.List5.currentText(),self.ui.cmd_five.text()))
            self.ShowLog(self.ui.List5.currentText(),stdout.read().decode())
            self.ShowLog(self.ui.List5.currentText(),stderr.read().decode())
            
    if __name__ == "__main__":
        app=QApplication(sys.argv)
        w=MainWindow()
        w.show()
        app.exit(app.exec())
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    • 38
    • 39
    • 40
    • 41
    • 42
    • 43
    • 44
    • 45
    • 46
    • 47
    • 48
    • 49
    • 50
    • 51
    • 52
    • 53
    • 54
    • 55
    • 56
    • 57
    • 58
    • 59
    • 60
    • 61
    • 62
    • 63
    • 64
    • 65
    • 66
    • 67
    • 68
    • 69
    • 70
    • 71
    • 72
    • 73
    • 74
    • 75
    • 76
    • 77
    • 78
    • 79
    • 80
    • 81
    • 82
    • 83
    • 84
    • 85
    • 86
    • 87
    • 88
    • 89
    • 90
    • 91
    • 92

    在这里插入图片描述

    调试命令行的简易GUI化,面向工程人员

    一套工具集,面向监控,和维护人员的使用

    连上板卡测试,主题功能已没有问题 V0.0.1.2

    在这里插入图片描述

    这套工具的数据库于板卡保存的数据库完全一致,互为备份,设备的参数备份有一个保障

    之后会在网管参数专有页面进行配置,一设备IP和编号和修改时间作为数据库修改的方法

  • 相关阅读:
    1.4-20:求一元二次方程的根
    spring 5.2+ http返回结果json格式字符集丢失问题
    sql注入
    在网页中实现响应性字体
    Spring源码深度解析(四):Spring框架后置处理器PostProcessor详解
    Linux项目自动化构建工具-make/Makefile
    【回眸】安装Hightec后如何导入源码及相关环境配置
    Spire.Office for Java 8.10.2 同步更新Crk
    How to import dgl-cu113 如何导入 dgl-cu113
    stm32(GD32,apm32),开优化后需要特别注意的地方
  • 原文地址:https://blog.csdn.net/weixin_45647912/article/details/133869700