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

以下为主代码

# --*-- 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. linux wheel组

    wheel 组的概念 wheel 组的概念继承自 UNIX.当服务器需要进行一些日常系统管理员无法执行的高级维护时,往往就要用到 root 权限:而“wheel” 组就是一个包含这些特殊权限的用户池: ...

  2. Restful API 设计参考原则

    在项目中,需要为后台服务撰写API.刚开始接触的时候,并没有考虑太多,就想提供URL,服务端通过该URL进行查询.创建.更新等操作即可.但再对相关规范进行了解后,才发现,API的设计并没有那么简单,远 ...

  3. 超详细的Java时间工具类

    package com.td.util; import java.sql.Timestamp; import java.text.ParseException; import java.text.Pa ...

  4. ResNet 论文研读笔记

    Deep Residual Learning for Image Recognition 原文链接 摘要 深度神经网络很难去训练,本文提出了一个残差学习框架来简化那些非常深的网络的训练,该框架使得层能 ...

  5. 文档数据库MongoDB

    MongoDB是一个基于分布式文件存储的文档式数据库.其由C++编写, 旨在为Web应用提供可扩展的高性能数据存储解决方案. MongoDB中每条数据记录被作为一个文档存储,文档由集合(collect ...

  6. Quartz2D指定显示范围

    在qq中,可以看到头像是圆形显示的,通过CGContextClip可以设置 CGContextRef context=UIGraphicsGetCurrentContext(); CGContextA ...

  7. Cannot find module 'socket.io'

    That's all. Then I try to use socket.io with this line: var io = require('socket.io').listen(app); A ...

  8. 多线程系列(3)任务Task

    虽然使用线程池ThreadPool让我们使用多线程变得容易,但是因为是由系统来分配的,如果想对线程做精细的控制就不太容易了,比如某个线程结束后执行一个回调方法.恰好Task可以实现这样的需求.这篇文章 ...

  9. jqgrid 获取当前页数据

    /** *刷新,jqGrid刷新当前列表页代码 */ function refresh(url) { var page = $('#your_grid').getGridParam('page'); ...

  10. Flask 中路由系统

    1. @app.route() 装饰器中的参数 methods : 当前 url 地址,允许访问的请求方式 @app.route("/info", methods=["G ...