PyQT实现一个自动生成配置工具
2016-09-06 19:47
351 查看
设备要量产,需要为每台设备烧录MAC及设备标识信息,今天为这事情专门写个小工具实现 这个功能,主要解决批量生成烧录配置信息,这里对其过程作个总结:
1. 选择QT的原因在于当时手上的图形工具就这一种,不想再花时间去搭建新的环境
2. QT简洁高效,搭配Python比较方便
3. 功能比较清晰,逻辑简单
主要过程:
1. 使用QT DESIGNER设置好界面,最终生成一个.ui文件的XML文件
进而通过pyuic4命令生成一个.py文件,该PY文件包含了界面的实现
2. 新的main.py文件包含功能的实现
其间主要解决了MAC的自加问题、产生随机字符问题、MAC地址的校验问题、QT弹消息问题、中文显示问题
MAC的有效性:
MAC增加 :
产生随机字符:
中文显示问题:
QT弹出消息框:
对于 上面几段代码,网上都有类似参考,整个功能实现只用了不到160行代码,很方便。
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 None randomlength=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 -1 if len(self.baseMacVal) == 0 or True != isValidMacAddr(self.baseMacVal): self.messageOut("ERROR,无效的基准MAC!") return -1 if 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 -1 if len(self.maxMac) == 0 or True != isValidMacAddr(self.maxMac): self.messageOut("ERROR,无效的最大MAC地址值!") return -1 if len(self.macStep) == 0 or int(self.macStep) <= 0: self.messageOut("ERROR,无效的MAC跳数!") return -1 return 0
对于 上面几段代码,网上都有类似参考,整个功能实现只用了不到160行代码,很方便。
相关文章推荐
- 用DOS写一个简单的虚拟WIFI工具,启动无线承载网络,自动配置实现共享
- MyEclipse自动生成Hibernate配置文件时的一个错误
- 用js实现的一个根据内容自动生成表格的函数
- NH自动生成配置文件工具
- 调用linux日期函数,实现每天自动生成一个oracle备份
- 自动生成数据库连接配置文件的工具(调用VS2005数据源选择对话框)
- pin统一配置及代码自动生成工具
- android-junit-report工具实现android下junit框架测试自动生成报告
- 实现core文件自动生成配置文件的方法
- [Swing]实现一个文本自动完成工具
- 一个好的代码自动生成工具
- 一个自动生成类的工具
- 使用svcutil工具自动生成wcf调用的客户端代码和配置文件
- 用分析函数实现自动生成sqlloader定长数据装载控制文件的一个语句
- 用js实现的一个根据内容自动生成表格的函数
- 利用struts commons BeanUtils写的一个自动生成toString()方法的工具
- 一个自动生成Hibernate ORM映射文件的工具函数
- Mybatis自动生成Mapper工具配置文件
- myEclipse7.5中安装 javascript,extjs的代码自动提示spket插件和extjs desiner可视化代码生成工具,extjs的一个很好的学习视频资源地址
- 自动生成pl/sql工具配置的方法步骤