Skip to content
  • Categories
  • Recent
  • Tags
  • Popular
  • Users
  • Groups
  • Search
  • Get Qt Extensions
  • Unsolved
Collapse
Brand Logo
  1. Home
  2. Qt Development
  3. General and Desktop
  4. Qline edit's Signal is not working as expected
Qt 6.11 is out! See what's new in the release blog

Qline edit's Signal is not working as expected

Scheduled Pinned Locked Moved General and Desktop
5 Posts 4 Posters 2.3k Views 1 Watching
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • H Offline
    H Offline
    holeygaurav
    wrote on last edited by
    #1

    Dear All,

    I am trying to develop an application, where in i want to store the user data.
    I have used different lineedits to take the inputs from my user...i have also apply some validators to some lineedit entries....as per expectation the editing finished signal of line edit should not be emitted till the inputs satisfies the validator condition...but in my case focus is shifting to next line edit...creating trouble for me...

    please help me.
    @
    #include "addmemberdlg.h"
    #include "ui_addmemberdlg.h"

    AddMemberDlg::AddMemberDlg(QWidget *parent) :
    QDialog(parent),
    ui(new Ui::AddMemberDlg)
    {
    ui->setupUi(this);
    setWindowTitle("ADD MEMBER");

    }

    AddMemberDlg::~AddMemberDlg()
    {
    delete ui;
    }

    void AddMemberDlg::on_pushButton_clicked() //Add Member
    {

        QSqlQuery("SecureFirst");
        QSqlQuery query;
      //  if(ui->comboBox->currentText() == "-")
        //    offval = 0 - offval;
    

    #if 0
    QString cardno;
    QValidator *v;
    int pos;
    //QToolTip ttip;

        v = new QIntValidator(1,99999,this);
        ui->lineEdit_CardNo->setValidator(v);
        ui->lineEdit_CardNo->setMaxLength(5); //Card number of maximum 99999 is allowed
        if(ui->lineEdit_CardNo->text().length() == 5)
            ui->lineEdit_CardNo->setToolTip("Maximum Character Exceeds");
    
        cardno = ui->lineEdit_CardNo->text();
        bool a = cardno.isEmpty();
        if(!a){//if not empty
            int i = v->validate(cardno,pos);
            if((i==0)||(i==1)){ //invalid input
                QMessageBox::information(this,"Add Member Request","Please enter numbers only");//Data Not complete
            }
        }
        else
            QMessageBox::information(this,"Add Member Request","Please enter numbers only");//Data Not complete
    

    #endif

        QString paymode = ui->comboBox->currentText();
        db.transaction();
        query.prepare("UPDATE SecureData SET CardNo=:CardNo, MemberName=:MemberName, Mobile=:Mobile, Address=:Address,SchemeName=:SchemeName, SchemeDuration=:SchemeDuration, Date=:Date, PayMode=:PayMode, Agent=:Agent");
        query.bindValue(":CardNo",cardno);
        query.bindValue(":MemberName",mname);
        query.bindValue(":Mobile",mobile);
        query.bindValue(":Address",address);
        query.bindValue(":SchemeName",schemen);
        query.bindValue(":SchemeDuration",duration);
        query.bindValue(":Date",joining);
        query.bindValue(":PayMode",paymode);
        query.bindValue(":Amount",amount);
        query.bindValue(":Agent",agent);
        query.exec();
    
        db.commit();
        //InitOffsetValues();
        QMessageBox::information(this,"Add Member Request","Data Saved Successfully");//Data Saved
    

    }

    void AddMemberDlg::on_pushButton_2_clicked()//Exit
    {
    reject();
    }

    #if 1
    void AddMemberDlg::on_lineEdit_CardNo_editingFinished()
    {

    QValidator *v;
    int pos;
    //QToolTip ttip;
    QWidget::setAttribute(Qt::WA_AlwaysShowToolTips);
    v = new QIntValidator(1,99999,this);
    ui->lineEdit_CardNo->setValidator(v);
    ui->lineEdit_CardNo->setMaxLength(5); //Card number of maximum 99999 is allowed
    

    // if(ui->lineEdit_CardNo->text().length() == 6)
    // ui->lineEdit_CardNo->setToolTip("Maximum Character Exceeds");

    cardno = ui->lineEdit_CardNo->text();
    bool a = cardno.isEmpty();
    if(!a){//if not empty
        int i = v->validate(cardno,pos);
        if((i==0)||(i==1)){ //invalid input
            QMessageBox::information(this,"Card Number","Please enter numbers only");//Data Not complete
            ui->lineEdit_CardNo->clear();
        }
    }
    else
        QMessageBox::information(this,"Card Number","Please Enter unique Card Number");//Data Not complete
    
    ui->lineEdit_CardNo->setFocus();
    

    }

    void AddMemberDlg::on_lineEdit_MName_editingFinished()
    {

    QString mname = ui->lineEdit_MName->text();
    bool b = mname.isEmpty();
    if(b){//if empty
        QMessageBox::information(this,"Member Name","Field is empty");//Data Not complete
    }
    

    }

    void AddMemberDlg::on_lineEdit_Mobile_editingFinished()
    {

    QString mobile = ui->lineEdit_Mobile->text();
    
    bool c = mobile.isEmpty();
    
    if(!c){//if not empty
        QValidator *validm;
        int pos;
        //QToolTip ttip;
    
        validm = new QIntValidator(1111111111,9999999999,this);
        ui->lineEdit_CardNo->setValidator(validm);
        ui->lineEdit_CardNo->setMaxLength(10); //Mobile number of maximum 99999 is allowed
    
        int i = validm->validate(mobile,pos);
        if((i==0)||(i==1)){ //invalid input
            QMessageBox::information(this,"Mobile Number","Please enter numbers only");//Data Not complete
        }
    }
    else
        QMessageBox::information(this,"Mobile Number","Enter Mobile Number");//Data Not complete
    

    }

    void AddMemberDlg::on_lineEdit_Addr_editingFinished()
    {

    QString address = ui->lineEdit_Addr->text();
    bool d = address.isEmpty();
    if(d){
    
        QMessageBox::information(this,"Address","Address Field is Empty");//Data Not complete
    }
    

    @

    1 Reply Last reply
    0
    • N Offline
      N Offline
      NicuPopescu
      wrote on last edited by
      #2

      I think you should create the validators with the line edits as parents

      i.e.

      @...
      ui->lineEdit_CardNo->setValidator(new QIntValidator(1,99999,ui->lineEdit_CardNo));
      ...@

      1 Reply Last reply
      0
      • SGaistS Offline
        SGaistS Offline
        SGaist
        Lifetime Qt Champion
        wrote on last edited by
        #3

        Hi,

        Looking through your code, it seems that you are not yet used to coding a GUI.I would suggest that you first go through some examples/demo of Qt's documentation to see how to use dialogs/designer made uis etc…

        Interested in AI ? www.idiap.ch
        Please read the Qt Code of Conduct - https://forum.qt.io/topic/113070/qt-code-of-conduct

        1 Reply Last reply
        0
        • IamSumitI Offline
          IamSumitI Offline
          IamSumit
          wrote on last edited by
          #4

          Hello ,

          You should use lostfocus() signal of those line edit (s) in which you have applied QIntValidator .

          e.g ;

          void MainWindow::on_txtPincode_lostFocus()
          {

          if(ui->txtPincode->text()==0)return;
          
          if(ui->txtPincode->text().length()!=6)
           {
          
               QMessageBox::warning(this,"Invalid PinCode","Must be of 6 digits");
          
               ui->txtPincode->selectAll();
          
               ui->txtPincode->setFocus();
          
           }
          

          }

          Be Cute

          1 Reply Last reply
          0
          • H Offline
            H Offline
            holeygaurav
            wrote on last edited by
            #5

            Dear Sir,

            I have just now started in qt...guidance of experts like you definitely means a lot to me....i'll try the suggestions given to me...will be back with more queries for you...thanks all in anticipation.

            Best Regards,
            Gaurav Holey

            1 Reply Last reply
            0

            • Login

            • Login or register to search.
            • First post
              Last post
            0
            • Categories
            • Recent
            • Tags
            • Popular
            • Users
            • Groups
            • Search
            • Get Qt Extensions
            • Unsolved