If anidados no funciona
-
Buenas tardes.
No se el motivo por el cual no funciona, el primer IF funciona correctamente, pero el segundo IF no funciona if(longitud > 20 or Texto.toInt() == 0), me toma los valores del primer IF if(longitud > 9 or Texto.toInt() == 0). Para que funcione este segundo IF, le tengo que quitar el "or" y dejarlo como if(longitud > 20) y anidar un nuevo if.
Si me podeis ayudar. Gracias.
void Tareas::on_salida2_cellChanged(int row, int column)
{
const QSignalBlocker blocker(ui->salida2);int longitud = ui->salida2->item(row,column)->text().length();
QString Texto = ui->salida2->item(row,column)->text().toUtf8().simplified();if(column == 1)
{
if(longitud > 9 or Texto.toInt() == 0) // Este SI FUNCIONA
{
QMessageBox::critical (this, "ERROR", "Logitud Maxima 9 caracteres numéricos");
ui->salida2->item(row,column)->setText("");
}
}else if(column == 2)
{
if(longitud > 20 or Texto.toInt() == 0) // Este NO FUNCIONA
{
QMessageBox::critical (this, "ERROR", "Logitud Maxima 20 caracteres numéricos ");
ui->salida2->item(row,column)->setText("");
}
}
} -
Comentar que de esta otra forma Tampoco funciona, si alguien ve donde puedo estar cometiendo el error, se lo agradecería.
void Tareas::on_salida2_cellChanged(int row, int column)
{
const QSignalBlocker blocker(ui->salida2);int longitud = ui->salida2->item(row,column)->text().length();
QString Texto = ui->salida2->item(row,column)->text().toUtf8().simplified();if(column == 1 and (longitud > 9 or Texto.toInt() == 0)) // Este SI FUNCIONA
{
QMessageBox::critical (this, "ERROR", "Logitud Maxima 9 caracteres numéricos");
ui->salida2->item(row,column)->setText("");
}else if(column == 2 and (longitud > 20 or Texto.toInt() == 0)) // Este NO FUNCIONA
{
QMessageBox::critical (this, "ERROR", "Logitud Maxima 20 caracteres numéricos ");
ui->salida2->item(row,column)->setText("");
}
}