本人现在在做自动化工具开发的工作,因此,记录下自己平时遇到的问题和解决之道,还有一些简单的小工具

以下为主代码

# --*-- coding:utf-8 --*--

from first import Ui_MainWindow
from PyQt5.QtWidgets import QApplication, QMainWindow,QMessageBox
import os
import sys
reload(sys)
sys.setdefaultencoding('utf-8') gcardnum = eval(sys.argv[1]) class Mainwindow(QMainWindow, Ui_MainWindow):
global card_num
def __init__(self):
super(Mainwindow, self).__init__()
self.setupUi(self)
self.click_num = 1
self.sn_list = []
self.card_num = gcardnum
self.label_2.setText(u"数量为:%s" % self.card_num)
self.label.setText(u"第%s块" % self.click_num)
self.button_OK.clicked.connect(self.begin_get)
self.button_cancel.clicked.connect(self.cancel) def scan_sn(self, sn):
if sn!="":
with open("sn.txt", "a+") as fw:
if len(sn) == 17:
if sn not in self.sn_list:
if self.click_num == int(self.card_num):
QMessageBox.information(self, '提示信息', '保存成功')
self.close()
self.sn_list.append(sn)
fw.write("%s\n" % sn)
self.lineEdit_sn.clear()
self.click_num += 1
self.label.setText(u"第%s块" % self.click_num)
else:
QMessageBox.information(self, '提示信息', '重复')
self.lineEdit_sn.clear()
else:
QMessageBox.information(self, '提示信息', '输入有误')
self.lineEdit_sn.clear()
else:
QMessageBox.information(self, '提示信息', '不能为空') def keyPressEvent(self, event):
sn = self.lineEdit_sn.text()
if str(event.key()) == "":
self.scan_sn(sn) def begin_get(self):
sn = self.lineEdit_sn.text()
self.scan_sn(sn) def cancel(self):
self.lineEdit_sn.clear() if __name__ == '__main__':
if os.path.exists("sn.txt"):
os.remove("sn.txt")
app = QApplication(sys.argv)
mainWindow = Mainwindow()
mainWindow.show()
sys.exit(app.exec_())

以下为pyqt界面设计

# -*- coding: utf-8 -*-

# Form implementation generated from reading ui file 'first.ui'
#
# Created: Wed Jul 18 14:57:14 2018
# by: PyQt5 UI code generator 5.3.2
#
# WARNING! All changes made in this file will be lost! from PyQt5 import QtCore, QtGui, QtWidgets class Ui_MainWindow(object):
def setupUi(self, MainWindow):
MainWindow.setObjectName("MainWindow")
MainWindow.resize(802, 692)
self.centralwidget = QtWidgets.QWidget(MainWindow)
self.centralwidget.setObjectName("centralwidget")
self.label_2 = QtWidgets.QLabel(self.centralwidget)
self.label_2.setGeometry(QtCore.QRect(310, 150, 211, 51))
font = QtGui.QFont()
font.setFamily("Agency FB")
font.setPointSize(14)
font.setBold(True)
font.setWeight(75)
self.label_2.setFont(font)
self.label_2.setText("")
self.label_2.setObjectName("label_2")
self.label = QtWidgets.QLabel(self.centralwidget)
self.label.setGeometry(QtCore.QRect(180, 250, 101, 51))
font = QtGui.QFont()
font.setPointSize(11)
self.label.setFont(font)
self.label.setObjectName("label")
self.lineEdit_sn = QtWidgets.QLineEdit(self.centralwidget)
self.lineEdit_sn.setGeometry(QtCore.QRect(290, 260, 301, 41))
font = QtGui.QFont()
font.setPointSize(12)
self.lineEdit_sn.setFont(font)
self.lineEdit_sn.setObjectName("lineEdit_sn")
self.button_OK = QtWidgets.QPushButton(self.centralwidget)
self.button_OK.setGeometry(QtCore.QRect(280, 370, 112, 34))
self.button_OK.setObjectName("button_OK")
self.button_cancel = QtWidgets.QPushButton(self.centralwidget)
self.button_cancel.setGeometry(QtCore.QRect(470, 370, 112, 34))
self.button_cancel.setObjectName("button_cancel")
self.label_3 = QtWidgets.QLabel(self.centralwidget)
self.label_3.setGeometry(QtCore.QRect(290, 50, 301, 51))
font = QtGui.QFont()
font.setPointSize(18)
font.setBold(True)
font.setWeight(75)
self.label_3.setFont(font)
self.label_3.setObjectName("label_3")
MainWindow.setCentralWidget(self.centralwidget)
self.menubar = QtWidgets.QMenuBar(MainWindow)
self.menubar.setGeometry(QtCore.QRect(0, 0, 802, 30))
self.menubar.setObjectName("menubar")
MainWindow.setMenuBar(self.menubar)
self.statusbar = QtWidgets.QStatusBar(MainWindow)
self.statusbar.setObjectName("statusbar")
MainWindow.setStatusBar(self.statusbar) self.retranslateUi(MainWindow)
QtCore.QMetaObject.connectSlotsByName(MainWindow) def retranslateUi(self, MainWindow):
_translate = QtCore.QCoreApplication.translate
MainWindow.setWindowTitle(_translate("MainWindow", "MainWindow"))
self.label.setText(_translate("MainWindow", "输入"))
self.button_OK.setText(_translate("MainWindow", "OK"))
self.button_cancel.setText(_translate("MainWindow", "Cancel"))
self.label_3.setText(_translate("MainWindow", "扫描输入"))

python + pyqt5 QlineEdit QMessageBox实现信息录入和消息弹框提醒的更多相关文章

  1. python之tkinter使用-消息弹框

    # messagebox:消息弹框 # 不断点击按钮,切换各种弹窗 import tkinter as tk from tkinter import messagebox from tk_center ...

  2. Python——pyqt5——消息框(QMessageBox)

    一.提供的类型 QMessageBox.information 信息框 QMessageBox.question 问答框 QMessageBox.warning 警告 QMessageBox.ctit ...

  3. 学员信息录入(StuInfoManager) 用分层实现(既MySchool后的一个案例)

    数据库 数据表名 Student 中文表名 学员信息表 字段显示 字段名 数据类型 字段大小 备注和说明 编号 stu_id int 主键,自增1 学生姓名 stu_name varchar 50 不 ...

  4. arcgis通过 Python 使用工具 获得结果信息

    通过 Python 使用工具 ArcGIS 10 每个地理处理工具都具有一组固定的参数,这些参数为工具提供执行所需的信息.工具通常具有定义一个或多个数据集的输入参数,这些数据集一般用于生成新的输出数据 ...

  5. 2019-02-18 扩展Python控制台实现中文反馈信息之二-正则替换

    "中文编程"知乎专栏原文地址 续前文扩展Python控制台实现中文反馈信息, 实现了如下效果: >>> 学 Traceback (most recent call ...

  6. Python递归_打印节点信息

    Python递归_打印节点信息 递归特性:1.必须由一个明确的结束条件2.每次进入更深一层递归时,问题规模相比上一次递归都应该有所减少3.递归效率不高,递归层次过多会导致栈溢出(在计算机中,函数调用时 ...

  7. Mac Python PyQt5 环境搭建

    pip install pyqt5 测试开发环境 在Terminal里敲下以下代码,如果没有报错就说明安装成功了. python -c "import PyQt5" 或是如下图,导 ...

  8. python爬虫之User-Agent用户信息

    python爬虫之User-Agent用户信息 爬虫是自动的爬取网站信息,实质上我们也只是一段代码,并不是真正的浏览器用户,加上User-Agent(用户代理,简称UA)信息,只是让我们伪装成一个浏览 ...

  9. python基础之获取版本信息

    在工作中经常会需要确定使用的py的版本信息,以便适配更多的系统,达到更大的兼容性. 一般关于python的信息和参数都要调用sys模块,关于操作系统的信息和调用都要使用os模块 所以这次我们使用sys ...

随机推荐

  1. Python高级特性:迭代器和生成器

    在Python中,很多对象都是可以通过for语句来直接遍历的,例如list.string.dict等等,这些对象都可以被称为可迭代对象.至于说哪些对象是可以被迭代访问的,就要了解一下迭代器相关的知识了 ...

  2. react高阶组件的理解

    [高阶组件和函数式编程] function hello() { console.log('hello jason'); } function WrapperHello(fn) { return fun ...

  3. JSON跨域解决方案收集

    最近面试问的挺多的一个问题,就是JavaScript的跨域问题.在这里,对跨域的一些方法做个总结.由于浏览器的同源策略,不同域名.不同端口.不同协议都会构成跨域:但在实际的业务中,很多场景需要进行跨域 ...

  4. Java基础——String类(一)

    一.String 类代表字符串 Java 程序中的所有字符串字面值(如 "abc" )都作为此类的实例实现. 字符串是常量:它们的值在创建之后不能更改.字符串缓冲区支持可变的字符串 ...

  5. SQL 通配符的使用?三种

    SQL 通配符 通配符可用于替代字符串中的任何其他字符. SQL 通配符 在 SQL 中,通配符与 SQL LIKE 操作符一起使用. SQL 通配符用于搜索表中的数据. 在 SQL 中,可使用以下通 ...

  6. Java高级工程师需要弄明白的20个知识点

    一般的程序员或许只需知道一些JAVA的语法结构,能对数据库数据进行CRUD就可以应付了.但要成为JAVA(高级) 工程师,就要对JAVA做比较深入的研究,需要不断学习进步,以下对高级工程师需要突破的知 ...

  7. LOJ1070(SummerTrainingDay05-B 矩阵快速幂)

    Algebraic Problem Given the value of a+b and ab you will have to find the value of an+bn. a and bnot ...

  8. python学习之老男孩python全栈第九期_day007作业

    一.关系运算 有如下两个集合,pythons是报名python课程的学员名字集合,linuxs是报名linux课程的学员名字集合pythons={'alex','egon','yuanhao','wu ...

  9. JS 闭包 p5

    终于到闭包了,写了一晚上,好激动: 首先闭包,个人是这样理解的(比较好记):闭包是一种能力,是一种可以访问内部函数作用域的能力或者说是一种行使权力,一旦你拥有这个能力,你将可以访问内部函数的作用域.

  10. 工作记录(JS向textarea添加固定内容、通过固定字符将字符串分割为数组)

    第一个是在 textarea 输入框中添加固定的内容. 代码如下: <textarea id="text" cols="30" rows="10 ...