Skip to content
  • Categories
  • Recent
  • Tags
  • Popular
  • Users
  • Groups
  • Search
  • Get Qt
  • Unsolved
Collapse
Brand Logo
  1. Home
  2. Qt Development
  3. Qt Creator and other tools
  4. QPointerEvent throws error
Qt 6.11 is out! See what's new in the release blog

QPointerEvent throws error

Scheduled Pinned Locked Moved Solved Qt Creator and other tools
56 Posts 5 Posters 34.5k 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.
  • Christian EhrlicherC Christian Ehrlicher
    SIGNAL(&QLineEdit::textEdited)
    

    really?

    You should read the Qt signals and slot documentation and also re-read the wiki page which @jsulm already pointed you to.

    C Offline
    C Offline
    curiosity
    wrote on last edited by
    #26

    @Christian-Ehrlicher

    connect(echoComboBox, &QComboBox::editTextChanged(echoLineEdit),
            this, [=](const QString &edited){qDebug() << edited;});
    

    i made the above change. but signal is giving error
    "call to non static function without an object argument". editTextChanged has qstring . i tried with qsting and qlineEdit as arg. its giving same error with both

    jsulmJ 1 Reply Last reply
    0
    • C curiosity

      @Christian-Ehrlicher

      connect(echoComboBox, &QComboBox::editTextChanged(echoLineEdit),
              this, [=](const QString &edited){qDebug() << edited;});
      

      i made the above change. but signal is giving error
      "call to non static function without an object argument". editTextChanged has qstring . i tried with qsting and qlineEdit as arg. its giving same error with both

      jsulmJ Offline
      jsulmJ Offline
      jsulm
      Lifetime Qt Champion
      wrote on last edited by
      #27

      @curiosity Please read the documentation! What you're doing is simply wrong and not even valid C++!
      You do not pass parameters when calling connect! Parameters are passed to the signal when it is emitted and then from the signal to slot.

      connect(echoComboBox, &QComboBox::editTextChanged,
              this, [=](const QString &edited){qDebug() << edited;});
      

      https://forum.qt.io/topic/113070/qt-code-of-conduct

      C 1 Reply Last reply
      3
      • jsulmJ jsulm

        @curiosity Please read the documentation! What you're doing is simply wrong and not even valid C++!
        You do not pass parameters when calling connect! Parameters are passed to the signal when it is emitted and then from the signal to slot.

        connect(echoComboBox, &QComboBox::editTextChanged,
                this, [=](const QString &edited){qDebug() << edited;});
        
        C Offline
        C Offline
        curiosity
        wrote on last edited by
        #28

        @jsulm

        thanks for correcting.

        i am trying to echo the text entered by the user into QCombobox in the next line.

        connect(echoComboBox, &QComboBox::currentTextChanged,this, &Window::onCurrentTextChanged);

            auto text = echoComboBox->currentText();
         passwordLineEdit = new QLineEdit;
        
            passwordLineEdit->setPlaceholderText("Password entered is : ");     //But this line is displayed in a new window. and password is not echoed.
        

        passwordLineEdit->show();

            echoComboBox->show();
        
        JonBJ jsulmJ 2 Replies Last reply
        0
        • C curiosity

          @jsulm

          thanks for correcting.

          i am trying to echo the text entered by the user into QCombobox in the next line.

          connect(echoComboBox, &QComboBox::currentTextChanged,this, &Window::onCurrentTextChanged);

              auto text = echoComboBox->currentText();
           passwordLineEdit = new QLineEdit;
          
              passwordLineEdit->setPlaceholderText("Password entered is : ");     //But this line is displayed in a new window. and password is not echoed.
          

          passwordLineEdit->show();

              echoComboBox->show();
          
          JonBJ Offline
          JonBJ Offline
          JonB
          wrote on last edited by JonB
          #29

          @curiosity said in QPointerEvent throws error:

          //But this line is displayed in a new window

          You have created a new QLineEdit but not put it anywhere (e.g. on an existing window), so where do you expect it to go? I do not know why you are choosing to create a new QLineEdit dynamically, but give it a parent and/or place it on some widget's layout.

          I really don't know what you are doing with a combobox."i am trying to echo the text entered by the user into QCombobox" --- what text is being entered how by user into combobox. Why in the world would you have a combobox, to choose an existing item from, if you want a user to enter a line of text for a password?

          passwordLineEdit->setPlaceholderText("Password entered is : "); //But this line is displayed in a new window. and password is not echoed.

          "Password is not echoed", what do you mean or expect? All you have done here is set the placeholder text of a QLineEdit to a fixed string. I see nothing in your code which perhaps copes/displays the auto text = echoComboBox->currentText(); anywhere.

          @jsulm gave you sample code for picking up changed edited text. All you have to do is change his lambda slot to (preferably using his signal) to call a method of you own, like you show with &Window::onCurrentTextChanged, and write the code in that to access the current text or the text parameter sent from void QComboBox::editTextChanged(const QString &text) signal.

          1 Reply Last reply
          2
          • C curiosity

            @jsulm

            thanks for correcting.

            i am trying to echo the text entered by the user into QCombobox in the next line.

            connect(echoComboBox, &QComboBox::currentTextChanged,this, &Window::onCurrentTextChanged);

                auto text = echoComboBox->currentText();
             passwordLineEdit = new QLineEdit;
            
                passwordLineEdit->setPlaceholderText("Password entered is : ");     //But this line is displayed in a new window. and password is not echoed.
            

            passwordLineEdit->show();

                echoComboBox->show();
            
            jsulmJ Offline
            jsulmJ Offline
            jsulm
            Lifetime Qt Champion
            wrote on last edited by
            #30

            @curiosity said in QPointerEvent throws error:

            auto text = echoComboBox->currentText();
            passwordLineEdit = new QLineEdit;

            passwordLineEdit->setPlaceholderText("Password entered is : ");
            

            Please think about this code and why it can't do what you want it to do and why you get a new window.
            @JonB gave you all needed hints.

            https://forum.qt.io/topic/113070/qt-code-of-conduct

            C 1 Reply Last reply
            0
            • jsulmJ jsulm

              @curiosity said in QPointerEvent throws error:

              auto text = echoComboBox->currentText();
              passwordLineEdit = new QLineEdit;

              passwordLineEdit->setPlaceholderText("Password entered is : ");
              

              Please think about this code and why it can't do what you want it to do and why you get a new window.
              @JonB gave you all needed hints.

              C Offline
              C Offline
              curiosity
              wrote on last edited by
              #31

              @jsulm @JonB

              echoLayout->addWidget(passwordLabel, 2, 0);
              echoLayout->addWidget(passwordLineEdit, 2, 1, 2, 3 );
              this is added to the grid layout

              QObject::connect(echoComboBox, &QComboBox::editTextChanged, this, [=](const QString &text) {
              Window::onCurrentTextChanged(text);
              });

              void onCurrentTextChanged(const QString &text)
              {
                  passwordLineEdit->setPlaceholderText("Password entered is : ");
                  passwordLineEdit->setText(text);  //Is this the right way to set the text   received from above signal. }
              

              value entered is still not reflecting

              jsulmJ C JonBJ 3 Replies Last reply
              0
              • C curiosity

                @jsulm @JonB

                echoLayout->addWidget(passwordLabel, 2, 0);
                echoLayout->addWidget(passwordLineEdit, 2, 1, 2, 3 );
                this is added to the grid layout

                QObject::connect(echoComboBox, &QComboBox::editTextChanged, this, [=](const QString &text) {
                Window::onCurrentTextChanged(text);
                });

                void onCurrentTextChanged(const QString &text)
                {
                    passwordLineEdit->setPlaceholderText("Password entered is : ");
                    passwordLineEdit->setText(text);  //Is this the right way to set the text   received from above signal. }
                

                value entered is still not reflecting

                jsulmJ Offline
                jsulmJ Offline
                jsulm
                Lifetime Qt Champion
                wrote on last edited by
                #32

                @curiosity said in QPointerEvent throws error:

                QObject::connect(echoComboBox, &QComboBox::editTextChanged, this, [=](const QString &text) {
                Window::onCurrentTextChanged(text);
                });

                There is no need for a lambda, just connect onCurrentTextChanged directly to the signal.

                https://forum.qt.io/topic/113070/qt-code-of-conduct

                1 Reply Last reply
                0
                • C curiosity

                  @jsulm @JonB

                  echoLayout->addWidget(passwordLabel, 2, 0);
                  echoLayout->addWidget(passwordLineEdit, 2, 1, 2, 3 );
                  this is added to the grid layout

                  QObject::connect(echoComboBox, &QComboBox::editTextChanged, this, [=](const QString &text) {
                  Window::onCurrentTextChanged(text);
                  });

                  void onCurrentTextChanged(const QString &text)
                  {
                      passwordLineEdit->setPlaceholderText("Password entered is : ");
                      passwordLineEdit->setText(text);  //Is this the right way to set the text   received from above signal. }
                  

                  value entered is still not reflecting

                  C Offline
                  C Offline
                  curiosity
                  wrote on last edited by
                  #33

                  @curiosity
                  c1211f47-d3fc-4cf7-be62-2ce6511bf141-image.png

                  1 Reply Last reply
                  0
                  • C curiosity

                    @jsulm @JonB

                    echoLayout->addWidget(passwordLabel, 2, 0);
                    echoLayout->addWidget(passwordLineEdit, 2, 1, 2, 3 );
                    this is added to the grid layout

                    QObject::connect(echoComboBox, &QComboBox::editTextChanged, this, [=](const QString &text) {
                    Window::onCurrentTextChanged(text);
                    });

                    void onCurrentTextChanged(const QString &text)
                    {
                        passwordLineEdit->setPlaceholderText("Password entered is : ");
                        passwordLineEdit->setText(text);  //Is this the right way to set the text   received from above signal. }
                    

                    value entered is still not reflecting

                    JonBJ Offline
                    JonBJ Offline
                    JonB
                    wrote on last edited by
                    #34

                    @curiosity said in QPointerEvent throws error:

                    value entered is still not reflecting

                    Not sure where you are at now. Yes, calling passwordLineEdit->setText(text); should set the text from the string. Check what is in the string. Check you are getting the signal by putting a qDebug() or something in the slot so that you know it is being called.

                    C 1 Reply Last reply
                    1
                    • JonBJ JonB

                      @curiosity said in QPointerEvent throws error:

                      value entered is still not reflecting

                      Not sure where you are at now. Yes, calling passwordLineEdit->setText(text); should set the text from the string. Check what is in the string. Check you are getting the signal by putting a qDebug() or something in the slot so that you know it is being called.

                      C Offline
                      C Offline
                      curiosity
                      wrote on last edited by
                      #35

                      @JonB
                      Ialready checked by planting a breakpoint in onCurrentTextChanged . on running and entering the text in the place holder i was expecting to hit the breakpoint, but it didnt hit.
                      this is my connect statement

                      connect(echoComboBox,&QComboBox::editTextChanged, this, &Window::onCurrentTextChanged);

                      void onCurrentTextChanged(const QString &text)
                      {
                          qDebug() << QString(" entered text is ")<<  text;
                      

                      //nothing is printed here in the application tab in qtcreator. it is not even hitting this breakpoint
                      passwordLineEdit->setPlaceholderText("Password entered is : ");
                      passwordLineEdit->setText(text);
                      passwordLineEdit->show();
                      passwordLineEdit->setEchoMode(QLineEdit::PasswordEchoOnEdit);

                      }
                      
                      Christian EhrlicherC 1 Reply Last reply
                      0
                      • C curiosity

                        @JonB
                        Ialready checked by planting a breakpoint in onCurrentTextChanged . on running and entering the text in the place holder i was expecting to hit the breakpoint, but it didnt hit.
                        this is my connect statement

                        connect(echoComboBox,&QComboBox::editTextChanged, this, &Window::onCurrentTextChanged);

                        void onCurrentTextChanged(const QString &text)
                        {
                            qDebug() << QString(" entered text is ")<<  text;
                        

                        //nothing is printed here in the application tab in qtcreator. it is not even hitting this breakpoint
                        passwordLineEdit->setPlaceholderText("Password entered is : ");
                        passwordLineEdit->setText(text);
                        passwordLineEdit->show();
                        passwordLineEdit->setEchoMode(QLineEdit::PasswordEchoOnEdit);

                        }
                        
                        Christian EhrlicherC Online
                        Christian EhrlicherC Online
                        Christian Ehrlicher
                        Lifetime Qt Champion
                        wrote on last edited by Christian Ehrlicher
                        #36

                        @curiosity said in QPointerEvent throws error:

                        void onCurrentTextChanged(const QString &text)...

                        This is a free function... How does this even compile?

                        Please provide your full relevant code which actually compiles.

                        C 1 Reply Last reply
                        0
                        • Christian EhrlicherC Christian Ehrlicher

                          @curiosity said in QPointerEvent throws error:

                          void onCurrentTextChanged(const QString &text)...

                          This is a free function... How does this even compile?

                          Please provide your full relevant code which actually compiles.

                          C Offline
                          C Offline
                          curiosity
                          wrote on last edited by
                          #37

                          @Christian-Ehrlicher
                          but i am using this as a slot. Please check the connect statement

                          Christian EhrlicherC 1 Reply Last reply
                          0
                          • C curiosity

                            @Christian-Ehrlicher
                            but i am using this as a slot. Please check the connect statement

                            Christian EhrlicherC Online
                            Christian EhrlicherC Online
                            Christian Ehrlicher
                            Lifetime Qt Champion
                            wrote on last edited by
                            #38

                            void MainWindow::onCurrentTextChanged() and void onCurrentTextChanged() are two different functions. Provide your full code including the header.

                            C 1 Reply Last reply
                            1
                            • Christian EhrlicherC Christian Ehrlicher

                              void MainWindow::onCurrentTextChanged() and void onCurrentTextChanged() are two different functions. Provide your full code including the header.

                              C Offline
                              C Offline
                              curiosity
                              wrote on last edited by
                              #39
                              This post is deleted!
                              Christian EhrlicherC 1 Reply Last reply
                              0
                              • C curiosity

                                This post is deleted!

                                Christian EhrlicherC Online
                                Christian EhrlicherC Online
                                Christian Ehrlicher
                                Lifetime Qt Champion
                                wrote on last edited by Christian Ehrlicher
                                #40

                                And now please format your code with the code (</>) tags so it is readable for others.
                                Your header does not match the source - this does not compile. And then you have a local variable echoLabel but connect the member later on...

                                C 1 Reply Last reply
                                0
                                • Christian EhrlicherC Christian Ehrlicher

                                  And now please format your code with the code (</>) tags so it is readable for others.
                                  Your header does not match the source - this does not compile. And then you have a local variable echoLabel but connect the member later on...

                                  C Offline
                                  C Offline
                                  curiosity
                                  wrote on last edited by
                                  #41

                                  @Christian-Ehrlicher
                                  //NewWidget.cpp

                                  #include "NewWidget.h"
                                  #include <iostream>
                                  using namespace std;
                                  
                                  #include <QComboBox>
                                  #include <QGridLayout>
                                  #include <QGroupBox>
                                  #include <QLabel>
                                  #include <QLineEdit>
                                  #include <QtWidgets>
                                  
                                  
                                  Window::Window(QWidget *parent) QWidget(parent)
                                  {
                                      QGroupBox *echoGroup = new QGroupBox(tr("Echo"));
                                  
                                  QLabel *echoLabel = new QLabel(tr("Mode:"));
                                  QComboBox *echoComboBox = new QComboBox;
                                  echoComboBox->addItem(tr("Normal"));
                                  echoComboBox->addItem(tr("Password"));
                                  echoComboBox->addItem(tr("PasswordEchoOnEdit"));
                                  echoComboBox->addItem(tr("No Echo"));
                                  
                                  
                                  echoLineEdit = new QLineEdit;
                                  echoLineEdit->setPlaceholderText("Placeholder Text");
                                  
                                  QLabel *passwordLabel = new QLabel(tr("Password entered is :"));
                                  passwordLineEdit = new QLineEdit;
                                  
                                  QGroupBox *validatorGroup = new QGroupBox(tr("Validator"));
                                  
                                  QLabel *validatorLabel = new QLabel(tr("Type:"));
                                  QComboBox *validatorComboBox = new QComboBox;
                                  validatorComboBox->addItem(tr("No validator"));
                                  validatorComboBox->addItem(tr("Integer validator"));
                                  validatorComboBox->addItem(tr("Double validator"));
                                  
                                  validatorLineEdit = new QLineEdit;
                                  validatorLineEdit->setPlaceholderText("Placeholder Text");
                                  
                                  QGroupBox *alignmentGroup = new QGroupBox(tr("Alignment"));
                                  
                                  QLabel *alignmentLabel = new QLabel(tr("Type:"));
                                  QComboBox *alignmentComboBox = new QComboBox;
                                  alignmentComboBox->addItem(tr("Left"));
                                  alignmentComboBox->addItem(tr("Centered"));
                                  alignmentComboBox->addItem(tr("Right"));
                                  
                                  alignmentLineEdit = new QLineEdit;
                                  alignmentLineEdit->setPlaceholderText("Placeholder Text");/>
                                  
                                  connect(echoComboBox,&QComboBox::editTextChanged, this, &Window::onCurrentTextChanged);
                                  
                                  connect(validatorComboBox, static_cast<void (QComboBox::*)(int)>(&QComboBox::activated),this, &Window::validatorChanged);
                                  connect(alignmentComboBox, static_cast<void (QComboBox::*)(int)>(&QComboBox::activated), this, &Window::alignmentChanged);
                                  
                                  QGridLayout *echoLayout = new QGridLayout;
                                  echoLayout->addWidget(echoLabel, 0, 0);
                                  echoLayout->addWidget(echoComboBox, 0, 1, Qt::AlignLeft);
                                  echoLayout->addWidget(echoLineEdit, 1, 0, 1, 2);
                                  echoLayout->addWidget(passwordLabel, 2, 0);
                                  echoLayout->addWidget(passwordLineEdit, 2, 2, 1, 2 );
                                  echoLayout->setRowStretch(0, 5);
                                  echoGroup->setLayout(echoLayout);
                                  
                                  QGridLayout *validatorLayout = new QGridLayout;
                                  validatorLayout->addWidget(validatorLabel, 0, 0);
                                  validatorLayout->addWidget(validatorComboBox, 0, 1);
                                  validatorLayout->addWidget(validatorLineEdit, 1, 0, 1, 2);
                                  validatorGroup->setLayout(validatorLayout);
                                  
                                  QGridLayout *alignmentLayout = new QGridLayout;
                                  alignmentLayout->addWidget(alignmentLabel, 0, 0);
                                  alignmentLayout->addWidget(alignmentComboBox, 0, 1);
                                  alignmentLayout->addWidget(alignmentLineEdit, 1, 0, 1, 2);
                                  alignmentGroup-> setLayout(alignmentLayout);
                                  
                                  
                                  QGridLayout *grid = new QGridLayout;
                                  grid->addWidget(createFirstGroup(), 0, 1);
                                  grid->heightForWidth(10);
                                  grid->setRowStretch(0,50);
                                  
                                  //setWindowTitle(tr("Radio Buttons"));
                                  
                                  
                                  QGridLayout *layout = new QGridLayout;
                                  layout->addWidget(echoGroup, 0, 0);
                                  layout->addWidget(validatorGroup, 1, 0);
                                  layout->addWidget(alignmentGroup, 2, 0);
                                  layout->addWidget(createFirstGroup(), 0, 1);
                                  //layout->addWidget(accessGroup, 1, 1);
                                  setLayout(layout);
                                  
                                  setWindowTitle(tr("Line Edits"));
                                  

                                  }

                                  QGroupBox *Window::createFirstGroup()
                                  {
                                      QGroupBox *groupBox = new QGroupBox(tr("Radio Buttons group"));
                                  
                                      QRadioButton *radio1 = new QRadioButton(tr("&Radio button 1"));
                                      QRadioButton *radio2 = new QRadioButton(tr("R&adio button 2"));
                                      QRadioButton *radio3 = new QRadioButton(tr("Ra&dio button 3"));
                                  
                                      radio1->setChecked(true);
                                  
                                      QVBoxLayout *vbox = new QVBoxLayout;
                                      vbox->addWidget(radio1);
                                      vbox->addWidget(radio2);
                                      vbox->addWidget(radio3);
                                      vbox->addStretch(1);
                                      groupBox->setLayout(vbox);
                                      resize(100, 200);
                                  
                                      return groupBox;
                                  }
                                  
                                  void Window::echoChanged(int index)
                                  {
                                      switch (index) {
                                      case 0:
                                          echoLineEdit->setEchoMode(QLineEdit::Normal);
                                          break;
                                      case 1:
                                          echoLineEdit->setEchoMode(QLineEdit::Password);
                                          break;
                                      case 2:
                                          echoLineEdit->setEchoMode(QLineEdit::PasswordEchoOnEdit);
                                          break;
                                      case 3:
                                          echoLineEdit->setEchoMode(QLineEdit::NoEcho);
                                          break;
                                      }
                                  }
                                  
                                  void Window::validatorChanged(int index)
                                  {
                                      switch (index) {
                                      case 0:
                                          validatorLineEdit->setValidator(nullptr);
                                          break;
                                      case 1:
                                          validatorLineEdit->setValidator(new QIntValidator(
                                              validatorLineEdit));
                                          break;
                                      case 2:
                                          validatorLineEdit->setValidator(new QDoubleValidator(-999.0,
                                              999.0, 2, validatorLineEdit));
                                          break;
                                      }
                                  
                                      validatorLineEdit->clear();
                                  }
                                  
                                  void Window::alignmentChanged(int index)
                                  {
                                      switch (index) {
                                      case 0:
                                          alignmentLineEdit->setAlignment(Qt::AlignLeft);
                                          break;
                                      case 1:
                                          alignmentLineEdit->setAlignment(Qt::AlignCenter);
                                          break;
                                      case 2:
                                          alignmentLineEdit->setAlignment(Qt::AlignRight);
                                          break;
                                      }
                                  }
                                  
                                  

                                  void Window::onCurrentTextChanged(const QString &text)
                                  {
                                  qDebug() << QString(" entered text is ")<< text;
                                  passwordLineEdit->setPlaceholderText("Password entered is : ");
                                  passwordLineEdit->setText(text);
                                  passwordLineEdit->show();
                                  passwordLineEdit->setEchoMode(QLineEdit::PasswordEchoOnEdit);
                                  }

                                  C 1 Reply Last reply
                                  0
                                  • C curiosity

                                    @Christian-Ehrlicher
                                    //NewWidget.cpp

                                    #include "NewWidget.h"
                                    #include <iostream>
                                    using namespace std;
                                    
                                    #include <QComboBox>
                                    #include <QGridLayout>
                                    #include <QGroupBox>
                                    #include <QLabel>
                                    #include <QLineEdit>
                                    #include <QtWidgets>
                                    
                                    
                                    Window::Window(QWidget *parent) QWidget(parent)
                                    {
                                        QGroupBox *echoGroup = new QGroupBox(tr("Echo"));
                                    
                                    QLabel *echoLabel = new QLabel(tr("Mode:"));
                                    QComboBox *echoComboBox = new QComboBox;
                                    echoComboBox->addItem(tr("Normal"));
                                    echoComboBox->addItem(tr("Password"));
                                    echoComboBox->addItem(tr("PasswordEchoOnEdit"));
                                    echoComboBox->addItem(tr("No Echo"));
                                    
                                    
                                    echoLineEdit = new QLineEdit;
                                    echoLineEdit->setPlaceholderText("Placeholder Text");
                                    
                                    QLabel *passwordLabel = new QLabel(tr("Password entered is :"));
                                    passwordLineEdit = new QLineEdit;
                                    
                                    QGroupBox *validatorGroup = new QGroupBox(tr("Validator"));
                                    
                                    QLabel *validatorLabel = new QLabel(tr("Type:"));
                                    QComboBox *validatorComboBox = new QComboBox;
                                    validatorComboBox->addItem(tr("No validator"));
                                    validatorComboBox->addItem(tr("Integer validator"));
                                    validatorComboBox->addItem(tr("Double validator"));
                                    
                                    validatorLineEdit = new QLineEdit;
                                    validatorLineEdit->setPlaceholderText("Placeholder Text");
                                    
                                    QGroupBox *alignmentGroup = new QGroupBox(tr("Alignment"));
                                    
                                    QLabel *alignmentLabel = new QLabel(tr("Type:"));
                                    QComboBox *alignmentComboBox = new QComboBox;
                                    alignmentComboBox->addItem(tr("Left"));
                                    alignmentComboBox->addItem(tr("Centered"));
                                    alignmentComboBox->addItem(tr("Right"));
                                    
                                    alignmentLineEdit = new QLineEdit;
                                    alignmentLineEdit->setPlaceholderText("Placeholder Text");/>
                                    
                                    connect(echoComboBox,&QComboBox::editTextChanged, this, &Window::onCurrentTextChanged);
                                    
                                    connect(validatorComboBox, static_cast<void (QComboBox::*)(int)>(&QComboBox::activated),this, &Window::validatorChanged);
                                    connect(alignmentComboBox, static_cast<void (QComboBox::*)(int)>(&QComboBox::activated), this, &Window::alignmentChanged);
                                    
                                    QGridLayout *echoLayout = new QGridLayout;
                                    echoLayout->addWidget(echoLabel, 0, 0);
                                    echoLayout->addWidget(echoComboBox, 0, 1, Qt::AlignLeft);
                                    echoLayout->addWidget(echoLineEdit, 1, 0, 1, 2);
                                    echoLayout->addWidget(passwordLabel, 2, 0);
                                    echoLayout->addWidget(passwordLineEdit, 2, 2, 1, 2 );
                                    echoLayout->setRowStretch(0, 5);
                                    echoGroup->setLayout(echoLayout);
                                    
                                    QGridLayout *validatorLayout = new QGridLayout;
                                    validatorLayout->addWidget(validatorLabel, 0, 0);
                                    validatorLayout->addWidget(validatorComboBox, 0, 1);
                                    validatorLayout->addWidget(validatorLineEdit, 1, 0, 1, 2);
                                    validatorGroup->setLayout(validatorLayout);
                                    
                                    QGridLayout *alignmentLayout = new QGridLayout;
                                    alignmentLayout->addWidget(alignmentLabel, 0, 0);
                                    alignmentLayout->addWidget(alignmentComboBox, 0, 1);
                                    alignmentLayout->addWidget(alignmentLineEdit, 1, 0, 1, 2);
                                    alignmentGroup-> setLayout(alignmentLayout);
                                    
                                    
                                    QGridLayout *grid = new QGridLayout;
                                    grid->addWidget(createFirstGroup(), 0, 1);
                                    grid->heightForWidth(10);
                                    grid->setRowStretch(0,50);
                                    
                                    //setWindowTitle(tr("Radio Buttons"));
                                    
                                    
                                    QGridLayout *layout = new QGridLayout;
                                    layout->addWidget(echoGroup, 0, 0);
                                    layout->addWidget(validatorGroup, 1, 0);
                                    layout->addWidget(alignmentGroup, 2, 0);
                                    layout->addWidget(createFirstGroup(), 0, 1);
                                    //layout->addWidget(accessGroup, 1, 1);
                                    setLayout(layout);
                                    
                                    setWindowTitle(tr("Line Edits"));
                                    

                                    }

                                    QGroupBox *Window::createFirstGroup()
                                    {
                                        QGroupBox *groupBox = new QGroupBox(tr("Radio Buttons group"));
                                    
                                        QRadioButton *radio1 = new QRadioButton(tr("&Radio button 1"));
                                        QRadioButton *radio2 = new QRadioButton(tr("R&adio button 2"));
                                        QRadioButton *radio3 = new QRadioButton(tr("Ra&dio button 3"));
                                    
                                        radio1->setChecked(true);
                                    
                                        QVBoxLayout *vbox = new QVBoxLayout;
                                        vbox->addWidget(radio1);
                                        vbox->addWidget(radio2);
                                        vbox->addWidget(radio3);
                                        vbox->addStretch(1);
                                        groupBox->setLayout(vbox);
                                        resize(100, 200);
                                    
                                        return groupBox;
                                    }
                                    
                                    void Window::echoChanged(int index)
                                    {
                                        switch (index) {
                                        case 0:
                                            echoLineEdit->setEchoMode(QLineEdit::Normal);
                                            break;
                                        case 1:
                                            echoLineEdit->setEchoMode(QLineEdit::Password);
                                            break;
                                        case 2:
                                            echoLineEdit->setEchoMode(QLineEdit::PasswordEchoOnEdit);
                                            break;
                                        case 3:
                                            echoLineEdit->setEchoMode(QLineEdit::NoEcho);
                                            break;
                                        }
                                    }
                                    
                                    void Window::validatorChanged(int index)
                                    {
                                        switch (index) {
                                        case 0:
                                            validatorLineEdit->setValidator(nullptr);
                                            break;
                                        case 1:
                                            validatorLineEdit->setValidator(new QIntValidator(
                                                validatorLineEdit));
                                            break;
                                        case 2:
                                            validatorLineEdit->setValidator(new QDoubleValidator(-999.0,
                                                999.0, 2, validatorLineEdit));
                                            break;
                                        }
                                    
                                        validatorLineEdit->clear();
                                    }
                                    
                                    void Window::alignmentChanged(int index)
                                    {
                                        switch (index) {
                                        case 0:
                                            alignmentLineEdit->setAlignment(Qt::AlignLeft);
                                            break;
                                        case 1:
                                            alignmentLineEdit->setAlignment(Qt::AlignCenter);
                                            break;
                                        case 2:
                                            alignmentLineEdit->setAlignment(Qt::AlignRight);
                                            break;
                                        }
                                    }
                                    
                                    

                                    void Window::onCurrentTextChanged(const QString &text)
                                    {
                                    qDebug() << QString(" entered text is ")<< text;
                                    passwordLineEdit->setPlaceholderText("Password entered is : ");
                                    passwordLineEdit->setText(text);
                                    passwordLineEdit->show();
                                    passwordLineEdit->setEchoMode(QLineEdit::PasswordEchoOnEdit);
                                    }

                                    C Offline
                                    C Offline
                                    curiosity
                                    wrote on last edited by
                                    #42

                                    @Christian-Ehrlicher

                                    I tried formatting it. but this was how it shoed up after posting NewWidget.cpp

                                    #ifndef WINDOW_H
                                    #define WINDOW_H
                                    
                                    #include <QWidget>
                                    #include <QLineEdit>
                                    #include <QDebug>
                                    
                                    QT_BEGIN_NAMESPACE
                                    class QLineEdit;
                                    class QGroupBox;
                                    QT_END_NAMESPACE
                                    
                                    
                                    class Window : public QWidget
                                    {
                                        Q_OBJECT
                                    
                                    public:
                                        QLineEdit *passwordLineEdit;
                                    
                                        Window(QWidget *parent = nullptr);
                                    
                                    private:
                                        QLineEdit *echoLineEdit;
                                        QLineEdit *validatorLineEdit;
                                        QLineEdit *alignmentLineEdit;
                                    
                                    public slots:
                                        void echoChanged(int);
                                        void validatorChanged(int);
                                        void alignmentChanged(int);
                                        QGroupBox *createFirstGroup();
                                    
                                    };
                                    
                                    #endif
                                    

                                    //Main.cpp

                                    #include <QApplication>
                                    
                                    #include "NewWidget.h"
                                    
                                    int main(int argc, char *argv[])
                                    {
                                        QApplication app(argc, argv);
                                        Window window;
                                        window.show();
                                        return app.exec();
                                    }
                                    

                                    code is compiling and running.. except that it is not echoing the text entered

                                    Christian EhrlicherC JonBJ C 4 Replies Last reply
                                    0
                                    • C curiosity

                                      @Christian-Ehrlicher

                                      I tried formatting it. but this was how it shoed up after posting NewWidget.cpp

                                      #ifndef WINDOW_H
                                      #define WINDOW_H
                                      
                                      #include <QWidget>
                                      #include <QLineEdit>
                                      #include <QDebug>
                                      
                                      QT_BEGIN_NAMESPACE
                                      class QLineEdit;
                                      class QGroupBox;
                                      QT_END_NAMESPACE
                                      
                                      
                                      class Window : public QWidget
                                      {
                                          Q_OBJECT
                                      
                                      public:
                                          QLineEdit *passwordLineEdit;
                                      
                                          Window(QWidget *parent = nullptr);
                                      
                                      private:
                                          QLineEdit *echoLineEdit;
                                          QLineEdit *validatorLineEdit;
                                          QLineEdit *alignmentLineEdit;
                                      
                                      public slots:
                                          void echoChanged(int);
                                          void validatorChanged(int);
                                          void alignmentChanged(int);
                                          QGroupBox *createFirstGroup();
                                      
                                      };
                                      
                                      #endif
                                      

                                      //Main.cpp

                                      #include <QApplication>
                                      
                                      #include "NewWidget.h"
                                      
                                      int main(int argc, char *argv[])
                                      {
                                          QApplication app(argc, argv);
                                          Window window;
                                          window.show();
                                          return app.exec();
                                      }
                                      

                                      code is compiling and running.. except that it is not echoing the text entered

                                      Christian EhrlicherC Online
                                      Christian EhrlicherC Online
                                      Christian Ehrlicher
                                      Lifetime Qt Champion
                                      wrote on last edited by
                                      #43

                                      Please read my post carefully and fix the errors in your code.

                                      1 Reply Last reply
                                      0
                                      • C curiosity

                                        @Christian-Ehrlicher

                                        I tried formatting it. but this was how it shoed up after posting NewWidget.cpp

                                        #ifndef WINDOW_H
                                        #define WINDOW_H
                                        
                                        #include <QWidget>
                                        #include <QLineEdit>
                                        #include <QDebug>
                                        
                                        QT_BEGIN_NAMESPACE
                                        class QLineEdit;
                                        class QGroupBox;
                                        QT_END_NAMESPACE
                                        
                                        
                                        class Window : public QWidget
                                        {
                                            Q_OBJECT
                                        
                                        public:
                                            QLineEdit *passwordLineEdit;
                                        
                                            Window(QWidget *parent = nullptr);
                                        
                                        private:
                                            QLineEdit *echoLineEdit;
                                            QLineEdit *validatorLineEdit;
                                            QLineEdit *alignmentLineEdit;
                                        
                                        public slots:
                                            void echoChanged(int);
                                            void validatorChanged(int);
                                            void alignmentChanged(int);
                                            QGroupBox *createFirstGroup();
                                        
                                        };
                                        
                                        #endif
                                        

                                        //Main.cpp

                                        #include <QApplication>
                                        
                                        #include "NewWidget.h"
                                        
                                        int main(int argc, char *argv[])
                                        {
                                            QApplication app(argc, argv);
                                            Window window;
                                            window.show();
                                            return app.exec();
                                        }
                                        

                                        code is compiling and running.. except that it is not echoing the text entered

                                        Christian EhrlicherC Online
                                        Christian EhrlicherC Online
                                        Christian Ehrlicher
                                        Lifetime Qt Champion
                                        wrote on last edited by
                                        #44
                                        This post is deleted!
                                        1 Reply Last reply
                                        0
                                        • C curiosity

                                          @Christian-Ehrlicher

                                          I tried formatting it. but this was how it shoed up after posting NewWidget.cpp

                                          #ifndef WINDOW_H
                                          #define WINDOW_H
                                          
                                          #include <QWidget>
                                          #include <QLineEdit>
                                          #include <QDebug>
                                          
                                          QT_BEGIN_NAMESPACE
                                          class QLineEdit;
                                          class QGroupBox;
                                          QT_END_NAMESPACE
                                          
                                          
                                          class Window : public QWidget
                                          {
                                              Q_OBJECT
                                          
                                          public:
                                              QLineEdit *passwordLineEdit;
                                          
                                              Window(QWidget *parent = nullptr);
                                          
                                          private:
                                              QLineEdit *echoLineEdit;
                                              QLineEdit *validatorLineEdit;
                                              QLineEdit *alignmentLineEdit;
                                          
                                          public slots:
                                              void echoChanged(int);
                                              void validatorChanged(int);
                                              void alignmentChanged(int);
                                              QGroupBox *createFirstGroup();
                                          
                                          };
                                          
                                          #endif
                                          

                                          //Main.cpp

                                          #include <QApplication>
                                          
                                          #include "NewWidget.h"
                                          
                                          int main(int argc, char *argv[])
                                          {
                                              QApplication app(argc, argv);
                                              Window window;
                                              window.show();
                                              return app.exec();
                                          }
                                          

                                          code is compiling and running.. except that it is not echoing the text entered

                                          JonBJ Offline
                                          JonBJ Offline
                                          JonB
                                          wrote on last edited by
                                          #45

                                          @curiosity
                                          There is an awful lot of code (and discussion) here, I am lost as to where you are at. In the following order:

                                          1. connect(echoComboBox,&QComboBox::editTextChanged, this, [](const QString &text) { qDebug() << "text:" << text; } );
                                            Does this work?

                                          2. connect(echoComboBox,&QComboBox::editTextChanged, this, &Window::onCurrentTextChanged);
                                            Where Window::onCurrentTextChanged(const QString &text) slot has qDebug() << "text:" << text; as its first statement.
                                            Does this work?

                                          3. Once those are working. If text does not show from passwordLineEdit->setText(text); where you have gone passwordLineEdit->setEchoMode(QLineEdit::PasswordEchoOnEdit); try without PasswordEchoOnEdit, I don't know if that interferes with what you can do or see when you mark a line edit as being for password entry.

                                          Christian EhrlicherC 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
                                          • Unsolved