#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. 汉字编码对照表(gb2312/Big5/GB2312)

    一.汉字编码的种类 1.GB2312又称国标码,由国家标准总局发布,1981年5月1日实施,通行于大陆.新加坡等地也使用此编码.它是一个简化字的编码规范,当然也包括其他的符号.字母.日文假名等,共74 ...

  2. 外媒解读Web安全核心PKI的四大致命问题

    Web安全的立足根基在于复杂的PKI部署体系,但实际生活中得到正确部署的比例却非常有限,而且这一切都将随着摩尔定律的滚滚洪流灰飞烟灭. 我个人算是PKI(即公共密钥基础设施)的忠实拥护者.我热爱数学与 ...

  3. extend()和append()区别

    extend()和append()都可以用来添加. 例: a = [1,2,3,4,5,6] b = [7,8,9,10] c = {'aa':123,'bb':456,'cc':789} 1.    ...

  4. Codeforces Round #623 (Div. 2, based on VK Cup 2019-2020 - Elimination Round, Engine) A Dead Pixel

    讨论坏点的左右上下的矩形大小. #include <bits/stdc++.h> using namespace std; int main() { int t; cin >> ...

  5. CodeForces - 1058D D. Vasya and Triangle

    D. Vasya and Triangle time limit per test1 second memory limit per test256 megabytes inputstandard i ...

  6. varnish 项目实战

    1.工作原理 在当前主流的Web服务架构体系中,Cache担任着越来越重要的作用.常见的基于浏览器的C/S架构,Web Cache更是节约服务器资源的关键.而最近几年由FreeBSD创始人之一Kamp ...

  7. Codeforces Round #626 D. Present

    D. Present 题目大意:给你一个大小是n的序列,求两两之间相加进行异或之后的答案. 这个题目我并没有想到怎么写,有点偷懒于是就去看了题解.. 题解很套路... 题解: 因为这个是用到了异或,所 ...

  8. 树的最小支配集 E - Cell Phone Network POJ - 3659 E. Tree with Small Distances

    E - Cell Phone Network POJ - 3659 题目大意: 给你一棵树,放置灯塔,每一个节点可以覆盖的范围是这个节点的所有子节点和他的父亲节点,问要使得所有的节点被覆盖的最少灯塔数 ...

  9. 在web项目中使用shiro(记住我功能)

    第一步,添加“记住我”复选框,rememberMe要设置参数 第二步,配置shiro的主配置文件 注意 rememberMeCookie对应的bean中要声明 <constructor-arg ...

  10. bootstrap4中bootstrap_treeview不显示图标原因以及解决办法

    1.bootstrap4中bootstrap_treeview不显示图标原因 查看过大神的博客,经过自己试验,插件依赖: bootstrap/3.3.7 jquery/3.3.1 <link h ...