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
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
- PyQT实现一个自动生成配置工具
- pyQT实现自动找茬游戏
- 一个好的代码自动生成工具
- 一个自动生成类的工具
- eclipse 配置hibernate自动生成工具
- [Swing]实现一个文本自动完成工具
- 一个自动生成Hibernate ORM映射文件的工具函数
- 自动生成pl/sql工具配置的方法步骤
- pin统一配置及代码自动生成工具
- MyBatis自动生成工具去掉注释的配置
- 代码自动生成工具
- 自动文档生成工具
- 自动文档生成工具
- myBatis自动生成工具
- mybatis自动生成工具
- TestDataBuilder自动生成工具
- APP自动生成工具
- Makefile自动生成工具
- 用html5 canvas js 实现图片大小的压缩显示,图片上传后可在线预览。
- android Tips
- 将Gif图转换成Unity Texture2D
- HDU Bone Collector II
- SVG实现超酷素描动画
- PyQT实现一个自动生成配置工具
- 浙大PAT甲级 1100
- Java排序算法--堆排序(HeapSort)
- public int? Salary { get; set; }
- 51nod-1134最长上升子序列
- java环境变量的配置及常用命令提示符语句
- 用CMutex类实现程序互斥运行
- ural 1001
- Uva1025A Spy in the Metro