python + pyqt5 QlineEdit QMessageBox实现信息录入和消息弹框提醒
本人现在在做自动化工具开发的工作,因此,记录下自己平时遇到的问题和解决之道,还有一些简单的小工具
以下为主代码
# --*-- 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实现信息录入和消息弹框提醒的更多相关文章
- python之tkinter使用-消息弹框
# messagebox:消息弹框 # 不断点击按钮,切换各种弹窗 import tkinter as tk from tkinter import messagebox from tk_center ...
- Python——pyqt5——消息框(QMessageBox)
一.提供的类型 QMessageBox.information 信息框 QMessageBox.question 问答框 QMessageBox.warning 警告 QMessageBox.ctit ...
- 学员信息录入(StuInfoManager) 用分层实现(既MySchool后的一个案例)
数据库 数据表名 Student 中文表名 学员信息表 字段显示 字段名 数据类型 字段大小 备注和说明 编号 stu_id int 主键,自增1 学生姓名 stu_name varchar 50 不 ...
- arcgis通过 Python 使用工具 获得结果信息
通过 Python 使用工具 ArcGIS 10 每个地理处理工具都具有一组固定的参数,这些参数为工具提供执行所需的信息.工具通常具有定义一个或多个数据集的输入参数,这些数据集一般用于生成新的输出数据 ...
- 2019-02-18 扩展Python控制台实现中文反馈信息之二-正则替换
"中文编程"知乎专栏原文地址 续前文扩展Python控制台实现中文反馈信息, 实现了如下效果: >>> 学 Traceback (most recent call ...
- Python递归_打印节点信息
Python递归_打印节点信息 递归特性:1.必须由一个明确的结束条件2.每次进入更深一层递归时,问题规模相比上一次递归都应该有所减少3.递归效率不高,递归层次过多会导致栈溢出(在计算机中,函数调用时 ...
- Mac Python PyQt5 环境搭建
pip install pyqt5 测试开发环境 在Terminal里敲下以下代码,如果没有报错就说明安装成功了. python -c "import PyQt5" 或是如下图,导 ...
- python爬虫之User-Agent用户信息
python爬虫之User-Agent用户信息 爬虫是自动的爬取网站信息,实质上我们也只是一段代码,并不是真正的浏览器用户,加上User-Agent(用户代理,简称UA)信息,只是让我们伪装成一个浏览 ...
- python基础之获取版本信息
在工作中经常会需要确定使用的py的版本信息,以便适配更多的系统,达到更大的兼容性. 一般关于python的信息和参数都要调用sys模块,关于操作系统的信息和调用都要使用os模块 所以这次我们使用sys ...
随机推荐
- Python3 中使用sys.argv详解
#/usr/bin/env python #coding:utf-8 import sys # print(sys.argv[1]) def readFile(filename): "&qu ...
- 熟悉DAO模式的用法
今天主要是使用DAO模式. DAO模式通过对业务层提供数据抽象层接口,实现了以下目标: 1. 数据存储逻辑的分离 通过对数据访问逻辑进行抽象,为上层机构提供抽象化的数据访问接口.业务层无需关心具体的s ...
- SpringMVC Controller介绍及常见注解
一.简介 在SpringMVC中,控制器Controller负责处理由DispatcherServlet分发的请求,它把用户请求的数据经过业务处理层处理之后封装成一个Model,然后再把该Model返 ...
- linq中last或者lastordefault不存在的问题
在使用linq访问数据库的时候发现first以及firstordefault都存在,但是last以及lastordefault不存在.上网找寻一番发现是last只在linq to object中实现了 ...
- js的浅复制和深复制
1.浅复制VS深复制 本文中的复制也可以称为拷贝,在本文中认为复制和拷贝是相同的意思.另外,本文只讨论js中复杂数据类型的复制问题(Object,Array等),不讨论基本数据类型(null,unde ...
- MVC在filter中如何获取控制器名称和Action名称
使用ActionExecutingContext对象可以获取控制器名称.Action名称.参数名称以及参数值.路由和Action返回值不影响结果. 在代码中 [AttributeUsage(Attri ...
- 解决jquery绑定click事件出现点击一次执行两次问题
问题定位:通过浏览器F12定位到点击一次出现两次调用. 问题复现: $("#mail_span").on("click",function(){ ...
- Java基础——反射
今天学到Java基础中的反反射.依照我学习后的个人理解呢,反射就是一套获取类.属性.方法等的工具吧.(其实,感觉学完反射后,有点像喝凉水,解渴但确实我也没体会出它有什么味道,我可能没有学到精髓吧.自己 ...
- PHP中按值传递和引用传递的区别
有次跟朋友讨论对象传值的方式时提到引用传值时,在大脑中搜索五秒钟,果断确定在这两个项目当中并没有用到.今天去问了一下度娘,顺便做了个小测试: 按值传递: 引用传递: 按值传递中原来参数的值在调用其他函 ...
- DataTable的数据或表结构复制
把datatable的结构全部数据或部分数据复制到一个新的datatabledatatable复制表结构:我们可以使用.clone()方法: DataTable oldDT = GetDataTabl ...