I find the following problem, I have the following code, but it takes a long time to open the first time, I would like to know if there is any way to optimize the code.
Or something like that here I leave my code:
The interface is in a separate file.ui
import sys
from PyQt5.QtWidgets import QMainWindow, QApplication
from PyQt5.QtGui import *
from PyQt5.QtCore import *
from PyQt5 import uic
from PyQt5 import QtCore, Qt, QtGui
qss='''
QMainWindow{
background-color:qlineargradient(spread:reflect, x1:0.209, y1:0.006, x2:0.655367, y2:0.404, stop:0 rgba(88, 93, 99, 105), stop:1 rgba(20, 25, 29, 205))
}
QLineEdit#lineEdit{
border-radius:0px;
background-color:qlineargradient(spread:pad, x1:0, y1:0, x2:1, y2:0, stop:0 rgba(0, 0, 0, 0), stop:1 rgba(255, 255, 255, 0));
color:'white';
font:16pt;
border-bottom-style:solid;
border-width:1px;
border-color: lightgreen;
}
'''
qss2='''
QLineEdit#lineEdit{
border-radius:0px;
background-color:qlineargradient(spread:pad, x1:0, y1:0, x2:1, y2:0, stop:0 rgba(0, 0, 0, 0), stop:1 rgba(255, 255, 255, 0));
color:'white';
font:16pt;
border-bottom-style:solid;
border-width:1px;
border-color: lightgray;
}
'''
class Principal(QMainWindow):
def __init__(self):
QMainWindow.__init__(self)
uic.loadUi("nuevo.ui",self)
self.setWindowFlags(QtCore.Qt.FramelessWindowHint)
self.setAttribute(QtCore.Qt.WA_TranslucentBackground, True )
self.setAttribute(QtCore.Qt.WA_NoSystemBackground, False)
QMainWindow.setFocus(self.lineEdit)
self.bclose.clicked.connect(self.close)
self.bmin.clicked.connect(self.showMinimized)
self.bclear.setVisible(False)
self.bclear.clicked.connect(lambda:self.lineEdit.setText(""))
self.bclear.clicked.connect(lambda:self.bclear.setVisible(False))
self.bclear.clicked.connect(lambda:self.lineEdit.setStyleSheet(qss2))
self.bclear.clicked.connect(lambda:self.lineEdit.setFocus())
self.b0.clicked.connect(lambda:self.anadir("0"))
self.b1.clicked.connect(lambda:self.anadir("1"))
self.b2.clicked.connect(lambda:self.anadir("2"))
self.b3.clicked.connect(lambda:self.anadir("3"))
self.b4.clicked.connect(lambda:self.anadir("4"))
self.b5.clicked.connect(lambda:self.anadir("5"))
self.b6.clicked.connect(lambda:self.anadir("6"))
self.b7.clicked.connect(lambda:self.anadir("7"))
self.b8.clicked.connect(lambda:self.anadir("8"))
self.b9.clicked.connect(lambda:self.anadir("9"))
self.bmsm.clicked.connect(lambda:self.anadir("±"))
self.bmas.clicked.connect(lambda:self.anadir("+"))
self.bmin_2.clicked.connect(lambda:self.anadir("-"))
self.bm.clicked.connect(lambda:self.anadir("*"))
self.bdiv.clicked.connect(lambda:self.anadir("/"))
self.dpor.clicked.connect(lambda:self.anadir("%"))
self.bpont.clicked.connect(lambda:self.anadir("**"))
self.bp.clicked.connect(lambda:self.anadir("."))
self.bigual.clicked.connect(lambda:self.evaluacion())
self.bigual.clicked.connect(self.evaluacion)
self.regx=QtCore.QRegExp(r"[-+%*/()\[\].\d ]*")
self.validador = QtGui.QRegExpValidator(self.regx)
self.lineEdit.setValidator(self.validador)
self.lineEdit.installEventFilter(self)
def anadir(self,que):
actual = self.lineEdit.text()
self.lineEdit.setText(actual + que)
self.lineEdit.setFocus()
def evaluacion(self):
try:
n = eval(str(self.lineEdit.text()))
conver = str(n)
conver2 = str(n)[0:10]
ref = len(conver)
ref1 = str(len(conver)-10)
if ref > 20:
self.lineEdit.setText(conver2+" e"+ref1)
else:
self.lineEdit.setText(conver)
self.lineEdit.setStyleSheet(qss)
self.bclear.setVisible(True)
except SyntaxError:
self.lineEdit.setText("Error de Sintaxis")
self.bclear.setVisible(True)
except TypeError:
self.lineEdit.setText("Error de Sintaxis")
self.bclear.setVisible(True)
def keyPressEvent(self,event):
if event.key() == QtCore.Qt.Key_Return:
self.evaluacion()
event.accept()
def mousePressEvent(self,event):
if event.button() == QtCore.Qt.LeftButton:
self.dragPosition = event.globalPos() - self.frameGeometry().topLeft()
event.accept()
def mouseMoveEvent(self,event):
if event.buttons() == QtCore.Qt.LeftButton:
self.move(event.globalPos() - self.dragPosition)
event.accept()
app = QApplication([])
app.setStyleSheet(qss)
p = Principal()
p.show()
app.exec_()