Buenas tardes,
Soy nuevo en Python y QT, estoy haciendo una pequeña aplicación donde al introducir una cadena en HEX me la convierte a decimal. Hasta este punto no tengo problemas, el problema es que mi clase ejecuta todos los métodos después de que se introduce una cadena en un QLineedit y se da enter, se ejecuta otro método además del que tengo el connect a QLineedit.
En algún momento logré hacerlo funcionar pero tuve que borrar todo en mi equipo y no respalde mi código, ahora que estoy reescribiendo, no puedo solucionarlo.
El método borra se ejecuta inmediatamente después del método convierte.
Alguna sugerencia para que se mande llamar solo un método?
Soy nuevo en Python y QT, estoy haciendo una pequeña aplicación donde al introducir una cadena en HEX me la convierte a decimal. Hasta este punto no tengo problemas, el problema es que mi clase ejecuta todos los métodos después de que se introduce una cadena en un QLineedit y se da enter, se ejecuta otro método además del que tengo el connect a QLineedit.
En algún momento logré hacerlo funcionar pero tuve que borrar todo en mi equipo y no respalde mi código, ahora que estoy reescribiendo, no puedo solucionarlo.
El método borra se ejecuta inmediatamente después del método convierte.
Alguna sugerencia para que se mande llamar solo un método?
Código:
import sys
from PyQt5 import QtWidgets
from PyQt5.QtWidgets import QDialog, QApplication, QPushButton
from EPCWindow import EPC_Dialog
class MainWindow(QDialog):
def __init__(self):
super().__init__()
self.ui = EPC_Dialog()
self.ui.setupUi(self)
self.ui.ln_epc.setFocus()
self.ui.ln_epc.returnPressed.connect(self.convierte)
self.ui.pushButton.clicked.connect(self.borra)
def convierte(self):
lv_epc = self.ui.ln_epc.text()
lv_card = lv_epc[8:14]
lv_card_out = (int(lv_card,16))
self.ui.lbl_8hout.setText(str(lv_card_out))
lv_2h = lv_epc[8:10]
lv_4h = lv_epc[10:14]
lv_2h_out = str((int(lv_2h, 16)))
lv_4h_out = str((int(lv_4h, 16)))
lv_2h_4h_out = lv_2h_out + ", " + lv_4h_out
self.ui.lbl_2hout.setText(lv_2h_4h_out)
def borra(self):
self.ui.ln_epc.clear()
self.ui.lbl_2hout.clear()
self.ui.lbl_8hout.clear()
self.ui.ln_epc.setFocus()
# Main Program
if __name__ == '__main__':
app = QApplication(sys.argv)
ventana = MainWindow()
ventana.show()
sys.exit(app.exec_())
Código:
# -*- coding: utf-8 -*-
# Form implementation generated from reading ui file 'EPCWindow.ui'
#
# Created by: PyQt5 UI code generator 5.15.4
#
# WARNING: Any manual changes made to this file will be lost when pyuic5 is
# run again. Do not edit this file unless you know what you are doing.
from PyQt5 import QtCore, QtGui, QtWidgets
class EPC_Dialog(object):
def setupUi(self, Dialog):
Dialog.setObjectName("Dialog")
Dialog.setWindowModality(QtCore.Qt.NonModal)
Dialog.resize(320, 170)
self.lbl_epc = QtWidgets.QLabel(Dialog)
self.lbl_epc.setGeometry(QtCore.QRect(20, 24, 50, 14))
self.lbl_epc.setMinimumSize(QtCore.QSize(50, 14))
self.lbl_epc.setMaximumSize(QtCore.QSize(50, 14))
font = QtGui.QFont()
font.setPointSize(10)
self.lbl_epc.setFont(font)
self.lbl_epc.setObjectName("lbl_epc")
self.lbl_8hout = QtWidgets.QLabel(Dialog)
self.lbl_8hout.setGeometry(QtCore.QRect(100, 57, 200, 22))
self.lbl_8hout.setMinimumSize(QtCore.QSize(200, 22))
self.lbl_8hout.setMaximumSize(QtCore.QSize(200, 22))
font = QtGui.QFont()
font.setPointSize(10)
self.lbl_8hout.setFont(font)
self.lbl_8hout.setStyleSheet("background-color: rgb(255, 255, 255);")
self.lbl_8hout.setFrameShape(QtWidgets.QFrame.Box)
self.lbl_8hout.setText("")
self.lbl_8hout.setAlignment(QtCore.Qt.AlignRight|QtCore.Qt.AlignTrailing|QtCore.Qt.AlignVCenter)
self.lbl_8hout.setObjectName("lbl_8hout")
self.lbl_2hout = QtWidgets.QLabel(Dialog)
self.lbl_2hout.setGeometry(QtCore.QRect(100, 94, 200, 22))
self.lbl_2hout.setMinimumSize(QtCore.QSize(200, 22))
self.lbl_2hout.setMaximumSize(QtCore.QSize(200, 22))
font = QtGui.QFont()
font.setPointSize(10)
self.lbl_2hout.setFont(font)
self.lbl_2hout.setStyleSheet("background-color: rgb(255, 255, 255);")
self.lbl_2hout.setFrameShape(QtWidgets.QFrame.Box)
self.lbl_2hout.setText("")
self.lbl_2hout.setAlignment(QtCore.Qt.AlignRight|QtCore.Qt.AlignTrailing|QtCore.Qt.AlignVCenter)
self.lbl_2hout.setObjectName("lbl_2hout")
self.lbl_2h = QtWidgets.QLabel(Dialog)
self.lbl_2h.setGeometry(QtCore.QRect(20, 98, 60, 14))
self.lbl_2h.setMinimumSize(QtCore.QSize(60, 14))
self.lbl_2h.setMaximumSize(QtCore.QSize(60, 14))
font = QtGui.QFont()
font.setPointSize(10)
self.lbl_2h.setFont(font)
self.lbl_2h.setObjectName("lbl_2h")
self.lbl_8h = QtWidgets.QLabel(Dialog)
self.lbl_8h.setGeometry(QtCore.QRect(20, 61, 60, 14))
self.lbl_8h.setMinimumSize(QtCore.QSize(60, 14))
self.lbl_8h.setMaximumSize(QtCore.QSize(60, 14))
font = QtGui.QFont()
font.setPointSize(10)
self.lbl_8h.setFont(font)
self.lbl_8h.setObjectName("lbl_8h")
self.ln_epc = QtWidgets.QLineEdit(Dialog)
self.ln_epc.setGeometry(QtCore.QRect(100, 20, 200, 22))
self.ln_epc.setMinimumSize(QtCore.QSize(200, 22))
self.ln_epc.setMaximumSize(QtCore.QSize(200, 22))
font = QtGui.QFont()
font.setPointSize(10)
self.ln_epc.setFont(font)
self.ln_epc.setContextMenuPolicy(QtCore.Qt.NoContextMenu)
self.ln_epc.setAcceptDrops(True)
self.ln_epc.setMaxLength(26)
self.ln_epc.setClearButtonEnabled(False)
self.ln_epc.setObjectName("ln_epc")
self.pushButton = QtWidgets.QPushButton(Dialog)
self.pushButton.setGeometry(QtCore.QRect(225, 130, 75, 23))
font = QtGui.QFont()
font.setPointSize(10)
self.pushButton.setFont(font)
self.pushButton.setObjectName("pushButton")
self.retranslateUi(Dialog)
QtCore.QMetaObject.connectSlotsByName(Dialog)
def retranslateUi(self, Dialog):
_translate = QtCore.QCoreApplication.translate
Dialog.setWindowTitle(_translate("Dialog", "Dialog"))
self.lbl_epc.setText(_translate("Dialog", "EPC:"))
self.lbl_2h.setText(_translate("Dialog", "2H + 4H"))
self.lbl_8h.setText(_translate("Dialog", "8H -> 10D"))
self.pushButton.setText(_translate("Dialog", "Clear"))