Примерно так у меня получилось.
...
label1 = QtWidgets.QLabel('Кол-во коробок:', parent=dlg)
label1.setGeometry(20,50,150,20)
Line1 = QtWidgets.QLineEdit('0', parent=dlg)
Line1.setGeometry(180,50,200,20)
label2 = QtWidgets.QLabel('Кол-во упаковок в коробке:', parent=dlg)
label2.setGeometry(20,80,150,20)
Line2 = QtWidgets.QLineEdit('0', parent=dlg)
Line2.setGeometry(180,80,200,20)
label3 = QtWidgets.QLabel('Кол-во россыпью:', parent=dlg)
label3.setGeometry(20,110,150,20)
Line3 = QtWidgets.QLineEdit( '0', parent=dlg)
Line3.setGeometry(180,110,200,20)
#Валидатор
Line1.setValidator(QtGui.QIntValidator(0,1000,parent=dlg))
Line2.setValidator(QtGui.QIntValidator(0,1000,parent=dlg))
#textChanged() #Сигнал генерируется при изменении текста
Line1.textChanged.connect(lambda: line1(Line1.text(),Line2.text(),Line3,kolvo_tovar0))
Line2.textChanged.connect(lambda: line2(Line1.text(),Line2.text(),Line3,kolvo_tovar0))
def line1(Line1,Line2,Line3,kolvo_tovar0):
if Line1.strip() != '' and Line2.strip() != '':
kolvo_ross = float(kolvo_tovar0) - (int(Line1) * int(Line2))
Line3.setText(str(kolvo_ross))
def line2(Line1,Line2,Line3,kolvo_tovar0):
if Line1.strip() != '' and Line2.strip() != '':
kolvo_ross = float(kolvo_tovar0) - (int(Line1) * int(Line2))
Line3.setText(str(kolvo_ross))
...