各位大神帮我看下是什么问题 造成只要输入不是数字 进入else语句的messagebox就闪退
若注视掉messagebox语句,下面的print能够执行
-*- coding: utf-8 -*-
Form implementation generated from reading ui file 'change.ui'
#
Created by: PyQt5 UI code generator 5.7
#
WARNING! All changes made in this file will be lost!
from PyQt5 import QtCore, QtGui, QtWidgets
#from PyQt5.QtWidgets import QMessageBox
import re
class Ui_MainWindow(object):
def setupUi(self, MainWindow):
MainWindow.setObjectName("MainWindow")
MainWindow.resize(800, 600)
self.centralwidget = QtWidgets.QWidget(MainWindow)
self.centralwidget.setObjectName("centralwidget")
self.lineEdit = QtWidgets.QLineEdit(self.centralwidget)
self.lineEdit.setGeometry(QtCore.QRect(320, 140, 113, 20))
self.lineEdit.setMinimumSize(QtCore.QSize(113, 20))
self.lineEdit.setObjectName("lineEdit")
self.lineEdit_2 = QtWidgets.QLineEdit(self.centralwidget)
self.lineEdit_2.setGeometry(QtCore.QRect(320, 210, 113, 20))
self.lineEdit_2.setMinimumSize(QtCore.QSize(113, 20))
self.lineEdit_2.setObjectName("lineEdit_2")
MainWindow.setCentralWidget(self.centralwidget)
self.menubar = QtWidgets.QMenuBar(MainWindow)
self.menubar.setGeometry(QtCore.QRect(0, 0, 800, 23))
self.menubar.setObjectName("menubar")
MainWindow.setMenuBar(self.menubar)
self.statusbar = QtWidgets.QStatusBar(MainWindow)
self.statusbar.setObjectName("statusbar")
MainWindow.setStatusBar(self.statusbar)
self.retranslateUi(MainWindow)
self.lineEdit.editingFinished.connect(self.update)
#self.lineEdit_2.connect(self.lineEdit, SIGNAL("editingFinished"), self.update)
QtCore.QMetaObject.connectSlotsByName(MainWindow)
def retranslateUi(self, MainWindow):
_translate = QtCore.QCoreApplication.translate
MainWindow.setWindowTitle(_translate("MainWindow", "MainWindow"))
def update(self):
try:
text=self.lineEdit.text()
value=re.compile(r'[0-9]+\.+[0-9]+$')
result=value.match(text)
if result:
intnum=text.rsplit(".")
#print (intnum)
othernum="0"+"."+intnum[1]
#print (othernum)
minnum=int(float(othernum)*60)
#print (minnum)
secnum=int(float(othernum)*3600-minnum*60)
#print(secnum)
self.lineEdit_2.setText(intnum[0]+"°"+str(minnum)+"′"+str(secnum)+"″")
else:
QtGui.QMessageBox.warning(self,"Warning","输入数据错误,请重新输入!",
QMessageBox.OK,QMessageBox.OK)
print("输入错误")
except:
print(sys.exc_info)