#coding=utf-8
'''
Created on 2018年11月2日 @author: yanerfree
''' import sys
from PyQt5.QtWidgets import *
from PyQt5.QtCore import *
from PyQt5.QtGui import *
from future.types.newint import long #测试调试输出开关,正式发布需调整为False
mytest = True
mytest = False class WindowDemo(QWidget):
def __init__(self):
super().__init__()
self.initUI() def initUI(self):
glayout = QGridLayout()
glayout.setSpacing(10) lable1 = QLabel("请输入第 一 个序列号 :")
lable2 = QLabel("需要生成的序列号个数 : ")
lable3 = QLabel("生 成 的 序 列 号 :")
#lable3.setAlignment(Qt.AlignCenter) self.lineEdit1 = QLineEdit()
self.lineEdit2 = QLineEdit()
self.textEdit = QTextEdit() self.btn1 = QPushButton("开始")
self.btn1.clicked.connect(self.start) glayout.addWidget(lable1,1,1)
glayout.addWidget(lable2,2,1)
glayout.addWidget(lable3,3,1)
glayout.addWidget(self.btn1,9,2) glayout.addWidget(self.lineEdit1,1,2,1,3)
glayout.addWidget(self.lineEdit2,2,2,1,3)
glayout.addWidget(self.textEdit,3,2,5,3) '''
fromlayout.addRow(labl1, self.lineEdit1)
fromlayout.addRow(labl2, self.lineEdit2)
fromlayout.addRow(labl3, self.textEdit)
fromlayout.addWidget(self.btn1)
''' self.setLayout(glayout)
self.setWindowTitle("GenerateSerialNum")
#self.resize(400, 100)
self.setGeometry(100,60,500,500)
#self.setWindowIcon(QIcon(r"../photo/pikachu.png"))#设置窗体图标 def getparam(self):
#print("get params")
self.param1 = self.lineEdit1.text()
self.param2 = self.lineEdit2.text() def start(self):
self.btn1.setCheckable(False)
self.getparam()
self.left = ""
self.right = ""
index = self.getNumindex()
if index == -1:
return
if mytest: print("获取的index:",index)#ASDCXSW12345678000
self.left = str(self.param1)[0:index]
self.right = str(self.param1)[index:]
if mytest: print("self.left:",self.left)
if mytest: print("self.right:",self.right)
numlist = self.generateNum()
if numlist == -1:
return
content=""
for item in numlist:
content += str(item) self.textEdit.setPlainText(content)
self.btn1.setCheckable(True) def generateNum(self):
numlist = []
if len(self.param2)==0:
if mytest: print("请输入需要生成的序列号个数")
self.showmsg("warning","请输入需要生成的序列号个数")
return -1
if not str(self.param2).isdigit():
if mytest: print("请正确输入需要生成的序列号个数,必须是整数")
self.showmsg("warning","请正确输入需要生成的序列号个数,必须是整数")
return -1
if mytest: print("self.parm2:",int(self.param2))
tmp = 0
for i in range(int(self.param2)):
tmp = long(self.right) + i
#print("tmp:",tmp)
#tmp ="%s%d"%(self.left,tmp)
tmp =self.left + str(tmp) + "\r\n"
numlist.append(tmp) return numlist def getNumindex(self):
l = len(self.param1)
if mytest: print("输入的第一个序列号长度为:",l)
if not str(self.param1).isalnum():#必须是数字和字母的混合
if mytest: print("输入的序列号不正确,请重新输入")
self.showmsg("warning","输入的序列号不正确,请重新输入")
return -1
if str(self.param1).isalpha():#如果全是字母
if mytest: print("输入的序列号全是字母,请重新输入")
self.showmsg("warning","输入的序列号全是字母,请重新输入")
return -1
if str(self.param1)[-1].isalpha():#如果是字母
if mytest: print(str(self.param1)[-1],"输入的序列号最后一位必须是数字,请重新输入")
self.showmsg("warning","输入的序列号最后一位必须是数字,请重新输入")
return -1
index = 0
for i in range(l):
if self.param1[i].isalpha():
if mytest: print(self.param1[i],"是字母")
#self.left = self.left + self.param1[i]
else:
if mytest: print(self.param1[i],"是数字")
if self.param1[i:].isdigit():#判断是否数字
if mytest: print(self.param1[i:],"全是数字")
index =i
break
#self.right = self.param1[i]
else:
#self.left = self.left + self.param1[i]
if mytest: print(self.param1[i:],"不全是数字")
index += 1
return (index) def showmsg(self,t,msg):
if(t == "warning"):
# QMessageBox.warning(self,"Warining","没有需要保存的内容",QMessageBox.Ok)
QMessageBox.warning(self,"Warining",msg,QMessageBox.Ok)
if(t == "info"):
QMessageBox.information(self,"info",msg,QMessageBox.Yes,QMessageBox.Yes) if __name__ == '__main__':
# 每一个pyqt程序中都需要有一个QApplication对象,sys.argv是一个命令行参数列表
app = QApplication(sys.argv)
#实例化窗口
demo = WindowDemo()
#显示
demo.show()
#进入程序的主循环,遇到退出情况,终止程序
sys.exit(app.exec_())

打包成可执行程序

pip install PyInstaller,安装PyInstaller

pyinstaller -F -w F:\exercise\20181025\GenerateSerialNum.py

Pyqt5_实例1的更多相关文章

  1. pyqt5_实例:修改xml文件中节点值

    需求: 将类似如下xml文件的externalid节点值修改成不重复的值 实现该功能的代码Func.py: #coding=utf-8 ''' Created on 2019年10月15日 @auth ...

  2. 最近学习工作流 推荐一个activiti 的教程文档

    全文地址:http://www.mossle.com/docs/activiti/ Activiti 5.15 用户手册 Table of Contents 1. 简介 协议 下载 源码 必要的软件 ...

  3. js-静态、原型、实例属性

    本篇来说一下js中的属性: 1.静态属性 2.原型属性 3.实例属性 静态属性: function klass(){} var obj=new klass(); klass.count=0; klas ...

  4. ZIP压缩算法详细分析及解压实例解释

    最近自己实现了一个ZIP压缩数据的解压程序,觉得有必要把ZIP压缩格式进行一下详细总结,数据压缩是一门通信原理和计算机科学都会涉及到的学科,在通信原理中,一般称为信源编码,在计算机科学里,一般称为数据 ...

  5. EntityFramework Core 1.1是如何创建DbContext实例的呢?

    前言 上一篇我们简单讲述了在EF Core1.1中如何进行迁移,本文我们来讲讲EF Core1.1中那些不为人知的事,细抠细节,从我做起. 显式创建DbContext实例 通过带OnConfiguri ...

  6. redis集成到Springmvc中及使用实例

    redis是现在主流的缓存工具了,因为使用简单.高效且对服务器要求较小,用于大数据量下的缓存 spring也提供了对redis的支持: org.springframework.data.redis.c ...

  7. 流程开发Activiti 与SpringMVC整合实例

    流程(Activiti) 流程是完成一系列有序动作的概述.每一个节点动作的结果将对后面的具体操作步骤产生影响.信息化系统中流程的功能完全等同于纸上办公的层级审批,尤其在oa系统中各类电子流提现较为明显 ...

  8. UWP开发之Template10实践:本地文件与照相机文件操作的MVVM实例(图文付原代码)

    前面[UWP开发之Mvvmlight实践五:SuspensionManager中断挂起以及复原处理]章节已经提到过Template10,为了认识MvvmLight的区别特做了此实例. 原代码地址:ht ...

  9. echarts+php+mysql 绘图实例

    最近在学习php+mysql,因为之前画图表都是直接在echart的实例demo中修改数据,便想着两相结合练习一下,通过ajax调用后台数据画图表. 我使用的是echart3,相比较第二版,echar ...

随机推荐

  1. Vue中的父子传值问题

    个人网站 https://iiter.cn 程序员导航站 开业啦,欢迎各位观众姥爷赏脸参观,如有意见或建议希望能够不吝赐教! 好久没更博了,感觉下班后的时间莫名其妙就没有了,有了,了... 趁着端午放 ...

  2. 第 43 章 Baidu Map

    43.1. BMap.Circle var point = new BMap.Point(22.111, 114.111); var styleCircleF = { strokeColor:&quo ...

  3. three.js中的矩阵变换(模型视图投影变换)

    目录 1. 概述 2. 基本变换 2.1. 矩阵运算 2.2. 模型变换矩阵 2.2.1. 平移矩阵 2.2.2. 旋转矩阵 2.2.2.1. 绕X轴旋转矩阵 2.2.2.2. 绕Y轴旋转矩阵 2.2 ...

  4. SpringBoot集成Quartz实现定时任务

    1 需求 在我的前后端分离的实验室管理项目中,有一个功能是学生状态统计.我的设计是按天统计每种状态的比例.为了便于计算,在每天0点,系统需要将学生的状态重置,并插入一条数据作为一天的开始状态.另外,考 ...

  5. [Abp vNext 入坑分享] - 5.全局异常替换

    一.简要说明 [项目源码] [章节目录]   前面我们已经初步完成了框架的功能了,jwt的也已经接入完成了.   现在需要进行全局异常的接入了,abpvnext官方本来就有了全局异常的模块了,介绍链接 ...

  6. B. Welfare State(RMQ问题的逆向考虑)

    \(对于操作1,我们只关心最后一次操作.\) \(对于操作2,我们只关心值最大的一次操作.\) \(也就是说,我们记录每个居民最后一次被修改的位置\) \(然后它的最终答案就是从这个位置起,max(操 ...

  7. 牛客小白月赛16 小石的妹子 二分 or 线段树

    牛客小白月赛16 这个题目我AC之后看了一下别人的题解,基本上都是线段树,不过二分也可以. 这个题目很自然就肯定要对其中一个进行排序,排完序之后再处理另外一边,另一边记得离散化. 怎么处理呢,你仔细想 ...

  8. 解决php获取不到Authorization问题

    我用的是thinkphp3.2.3, 在使用jwt的时候通过Authorization传递token,但是每次都接收不到,通过修改..htaccess文件,问题成功解决了,下面是的.htaccess文 ...

  9. qt-n个数组实现排列组合

    例如:现在有一批鞋子,其中颜色有[‘白色’,‘黑色’,‘灰色’]:大小有[‘40’,‘41’,‘42’],样式有[‘板鞋’,‘运动’,‘休闲’],要求写一个算法,实现[[‘白色’,‘40’,‘板鞋’] ...

  10. STM32 ADC多通道规则采样和注入采样

    layout: post tags: [STM32] comments: true 文章目录 layout: post tags: [STM32] comments: true 什么是ADC? STM ...