Pyqt5_实例1
#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的更多相关文章
- pyqt5_实例:修改xml文件中节点值
需求: 将类似如下xml文件的externalid节点值修改成不重复的值 实现该功能的代码Func.py: #coding=utf-8 ''' Created on 2019年10月15日 @auth ...
- 最近学习工作流 推荐一个activiti 的教程文档
全文地址:http://www.mossle.com/docs/activiti/ Activiti 5.15 用户手册 Table of Contents 1. 简介 协议 下载 源码 必要的软件 ...
- js-静态、原型、实例属性
本篇来说一下js中的属性: 1.静态属性 2.原型属性 3.实例属性 静态属性: function klass(){} var obj=new klass(); klass.count=0; klas ...
- ZIP压缩算法详细分析及解压实例解释
最近自己实现了一个ZIP压缩数据的解压程序,觉得有必要把ZIP压缩格式进行一下详细总结,数据压缩是一门通信原理和计算机科学都会涉及到的学科,在通信原理中,一般称为信源编码,在计算机科学里,一般称为数据 ...
- EntityFramework Core 1.1是如何创建DbContext实例的呢?
前言 上一篇我们简单讲述了在EF Core1.1中如何进行迁移,本文我们来讲讲EF Core1.1中那些不为人知的事,细抠细节,从我做起. 显式创建DbContext实例 通过带OnConfiguri ...
- redis集成到Springmvc中及使用实例
redis是现在主流的缓存工具了,因为使用简单.高效且对服务器要求较小,用于大数据量下的缓存 spring也提供了对redis的支持: org.springframework.data.redis.c ...
- 流程开发Activiti 与SpringMVC整合实例
流程(Activiti) 流程是完成一系列有序动作的概述.每一个节点动作的结果将对后面的具体操作步骤产生影响.信息化系统中流程的功能完全等同于纸上办公的层级审批,尤其在oa系统中各类电子流提现较为明显 ...
- UWP开发之Template10实践:本地文件与照相机文件操作的MVVM实例(图文付原代码)
前面[UWP开发之Mvvmlight实践五:SuspensionManager中断挂起以及复原处理]章节已经提到过Template10,为了认识MvvmLight的区别特做了此实例. 原代码地址:ht ...
- echarts+php+mysql 绘图实例
最近在学习php+mysql,因为之前画图表都是直接在echart的实例demo中修改数据,便想着两相结合练习一下,通过ajax调用后台数据画图表. 我使用的是echart3,相比较第二版,echar ...
随机推荐
- NumPy学习指南(第2版)
第一章 NumPy快速入门 首先,我们将介绍如何在不同的操作系统中安装NumPy和相关软件,并给出使用NumPy的简单示例代码. 然后,我们将简单介绍IPython(一种交互式shell工具). 如前 ...
- Django入门2:路由系统
1.单一路由对应 url(r'^index/', views.index), # FBV url(r'^home/', views.Home.as_view()), # CBV 2.基于正则的路由 u ...
- HDU 4009 Transfer water(最小树形图)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4009 题意:给出一个村庄(x,y,z).每个村庄可以挖井或者修建水渠从其他村庄得到水.挖井有一个代价, ...
- mysql查询语句中like 的用法
1.常见用法: (1)搭配%使用 %代表一个或多个字符的通配符,譬如查询字段name中以大开头的数据: (2)搭配_使用 _代表仅仅一个字符的通配符,把上面那条查询语句中的%改为_,会发现只能查询出一 ...
- 学数据库你竟然不用用JAVA写代码,可惜你遇到了我! JAVA连接数据库(JDBC)的安装使用教程
Step 1 你得有Eclipse 没有出门右拐,我教不了你. Step 2 你得有Mysql MySQL的详细安装过程,我在另一篇博客中给出.戳我 Step 3 安装JDBC 可以去官网下,如果用的 ...
- USACO Training Section 1.3混合牛奶 Mixing Milk
题目描述 由于乳制品产业利润很低,所以降低原材料(牛奶)价格就变得十分重要.帮助Marry乳业找到最优的牛奶采购方案. Marry乳业从一些奶农手中采购牛奶,并且每一位奶农为乳制品加工企业提供的价格是 ...
- python(字符编码与转码)
一.字符编码演变史 二进制(0 1) """ 算机中的所有数据,不论是文字.图片.视频.还是音频文件,本质上最终都是按照类似 01010101 的二进制存储的,再说简单点 ...
- 题目分享k
题意:开关问题,有n只奶牛朝前或朝后,要使这n只奶牛全部朝前,每次能且必须翻转k只奶牛,求在最少翻转次数下的最小的k值,n≤5000 分析:n²暴力直接水过......枚举k值,对于每个k值因为最左边 ...
- Java——Java是什么一门什么语言
解释型语言 源代码不能直接翻译成机器语言,而是先翻译成中间代码,再由解释器对中间代码进行解释运行: 程序不需要编译,程序在运行时才翻译成机器语言,每执行一次都要翻译一次: 解释性语言代表:Python ...
- 线段树 逆序对 Minimum Inversion Number HDU - 1394 Laptop
Minimum Inversion Number HDU - 1394 求最小反转数,就是求最少的逆序对. 逆序对怎么求,就是先把所有的数都初始化为0,然后按照顺序放入数字,放入数字前查询从这个数往后 ...