PyQT实现一个自动生成配置工具

来源:互联网 发布:六级听力怎么练 知乎 编辑:程序博客网 时间:2024/04/28 04:18

设备要量产,需要为每台设备烧录MAC及设备标识信息,今天为这事情专门写个小工具实现 这个功能,主要解决批量生成烧录配置信息,这里对其过程作个总结:


1. 选择QT的原因在于当时手上的图形工具就这一种,不想再花时间去搭建新的环境

2. QT简洁高效,搭配Python比较方便

3. 功能比较清晰,逻辑简单


主要过程:

1. 使用QT DESIGNER设置好界面,最终生成一个.ui文件的XML文件  

进而通过pyuic4命令生成一个.py文件,该PY文件包含了界面的实现


2. 新的main.py文件包含功能的实现

其间主要解决了MAC的自加问题、产生随机字符问题、MAC地址的校验问题、QT弹消息问题、中文显示问题


MAC的有效性:

def isValidMacAddr(s):valid = re.compile(r'''  (^([0-9A-F]{1,2}[-]){5}([0-9A-F]{1,2})$  |^([0-9A-F]{1,2}[:]){5}([0-9A-F]{1,2})$  |^([0-9A-F]{1,2}[.]){5}([0-9A-F]{1,2})$)  ''', re.VERBOSE | re.IGNORECASE)return valid.match(s) is not None  


MAC增加 :

def increase_mac(mac, offset):#"B4B3628040aa" format    return "{:012X}".format(int(mac, 16) + offset)

产生随机字符:

def random_str(In_randStrLen):if int(In_randStrLen) <= 0:return Nonerandomlength=int(In_randStrLen)a = list(string.ascii_letters)random.shuffle(a)return ''.join(a[:randomlength])


中文显示问题:

def messageOut(self, msgContent):#type = sys.getfilesystemencoding()#print msgContent.decode('gbk')strs = msgContent.decode('gbk')QtGui.QMessageBox.question(self, 'Notice', strs, QtGui.QMessageBox.Ok, QtGui.QMessageBox.Ok)return -1

QT弹出消息框:

def validateMembers(self):if len(self.modeNameVal) == 0:self.messageOut("ERROR,无效的model name!")return -1if len(self.baseMacVal) == 0 or True != isValidMacAddr(self.baseMacVal):self.messageOut("ERROR,无效的基准MAC!")return -1if len(self.userNameVal) == 0:self.messageOut("ERROR,无效的user name!")return -1#if len(self.macNum) == 0 or int(self.macNum) <= 0:#self.messageOut("ERROR,无效的MAC数!")#return -1if len(self.maxMac) == 0 or True != isValidMacAddr(self.maxMac):self.messageOut("ERROR,无效的最大MAC地址值!")return -1if len(self.macStep) == 0 or int(self.macStep) <= 0:self.messageOut("ERROR,无效的MAC跳数!")return -1return 0

对于 上面几段代码,网上都有类似参考,整个功能实现只用了不到160行代码,很方便。


0 0
原创粉丝点击