Important: Please read the Qt Code of Conduct - https://forum.qt.io/topic/113070/qt-code-of-conduct

problemas con el formato



  • Hola, necesito saber como colocar cifras en un lineEdit pero que aparezcan con los puntos separando los miles, es decir 1.000 o 10.000, logre hacer un paso pero luego cuando necesito ese numero, al tomarlo del lineEdit no es el mismo, da 0, les envio el procedimiento de practica:
    void MainWindow::cambio()
    {
    if (valor >=10000 and valor <= 99999)
    {
    ui->ventana->setInputMask ( "99.999" );
    ui->ventana->setText(QString::number(valor));
    }
    else
    {
    if (valor >99999 and valor <= 999999)
    {
    ui->ventana->setInputMask ( "999.999" );
    ui->ventana->setText(QString::number(valor));
    }
    else
    {
    if (valor >999999 and valor <= 9999999)
    {
    ui->ventana->setInputMask ( "9.999.999" );
    ui->ventana->setText(QString::number(valor));
    }
    else
    {
    if (valor >9999999 and valor <= 99999999)
    {
    ui->ventana->setInputMask ( "99.999.999" );
    ui->ventana->setText(QString::number(valor));
    }
    }
    }
    }
    }
    Gracias por todo. Saludos


  • Moderators

    Hola

    Para no poner tantos if, usa 0 (ceros) en lugar de 9 (nueves) en la máscara, el cero indica un dígito, pero no es requerido introducirlo, así con una sola máscara podrás abarcar todo el rango de valores:

    https://doc.qt.io/qt-6/qlineedit.html#inputMask-prop

    En cuanto a lo que obtienes 0, ¿qué es, al convertirlo a número o cuando coges lo introducido en el QLineEdit?

    ¿ventana es el QLineEdit?

    Un saludo



  • Si, ya esta resuelto, cuando quería tomar un dato del lineEdit con ese formato me daba un 0, pero lo "solucioné" tomándolo de otro lado, y me quedó mejor.


Log in to reply