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

以下为主代码

# --*-- 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. webpack4 自学笔记四(style-loader)

    全部的代码及笔记都可以在我的github上查看, 欢迎star:https://github.com/Jasonwang911/webpackStudyInit/tree/master/css 引入- ...

  2. C# ABP - 创建自己的模块

    本篇文章介绍怎么创建自己的模块,并且使用依赖注入方法进行模块间的无缝结合. 我们创建一下自己的一个会员模块,针对不同的系统都可以用.你们可以看看我是怎么做的,或者从中得到启发. 目录 1.开始创建项目 ...

  3. MVC应用程序显示上传的图片(续)

    上一篇<MVC应用程序显示上传的图片>http://www.cnblogs.com/insus/p/3597543.html 最后有提及没有实现用户点击图片,显示原图的功能.此篇Insus ...

  4. sqlserver查询连续签到天数

    create table #t(keyId int identity,actionDate datetime)insert into #t(actionDate) select distinct Cr ...

  5. Redis散列操作

    Redis的散列可以将多个键值对存储在一个Redis键里面.可以把这种数据聚集看作是数据库中的行或者文档数据库中的文档. (添加和删除键值对) HMGET : HMGET key-name key [ ...

  6. javascript学习之路之元素获取和设置属性

    收拾心情,学习学习js!总结下自己的学习所得! 现有的有三种方法可以获取元素的节点,分别是通过元素ID,通过标签名和类名来获取的 1.GetElmentById:将返回一个与那个有给定ID属性的值的元 ...

  7. C# 异常语句 跳转语句 while循环 穷举法 迭代法

    一  异常语句   ♦ try.....catch....finally 结构形式 try{ 可能会出错的代码语句 如果这里出错了,那么不会在继续下面的代码,而是直接进入catch中处理异常}catc ...

  8. enum 的使用方法(java)

    作者QQ:1095737364    QQ群:123300273     欢迎加入! enum很像特殊的class,实际上enum声明定义的类型就是一个类.而这些类都是类库中Enum类的子类(java ...

  9. mongodb与mysql区别(超详细)

    MySQL是关系型数据库. 优势: 在不同的引擎上有不同 的存储方式. 查询语句是使用传统的sql语句,拥有较为成熟的体系,成熟度很高. 开源数据库的份额在不断增加,mysql的份额页在持续增长. 缺 ...

  10. H5音乐播放器源码共享

    由于博客云后台管理工具写起东西来实在难受,所以直接共享源码了! https://pan.baidu.com/s/1XeRxlk7iv5qt1f16s64F9w   H5源码!暂时只支持手机适配,电脑端 ...