Skip to content
  • Categories
  • Recent
  • Tags
  • Popular
  • Users
  • Groups
  • Search
  • Get Qt Extensions
  • Unsolved
Collapse
Brand Logo
  1. Home
  2. Qt Development
  3. Qt Creator and other tools
  4. QPointerEvent throws error
Forum Updated to NodeBB v4.3 + New Features

QPointerEvent throws error

Scheduled Pinned Locked Moved Solved Qt Creator and other tools
56 Posts 5 Posters 15.0k 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.
  • 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 Online
      JonBJ Online
      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 Online
                JonBJ Online
                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 Offline
                    Christian EhrlicherC Offline
                    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 Offline
                        Christian EhrlicherC Offline
                        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 Offline
                            Christian EhrlicherC Offline
                            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 Offline
                                  Christian EhrlicherC Offline
                                  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 Offline
                                    Christian EhrlicherC Offline
                                    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 Online
                                      JonBJ Online
                                      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
                                      • JonBJ JonB

                                        @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 Offline
                                        Christian EhrlicherC Offline
                                        Christian Ehrlicher
                                        Lifetime Qt Champion
                                        wrote on last edited by
                                        #46

                                        @JonB It can not work. See my comment about local and member variable. C++ basic stuff.

                                        JonBJ 1 Reply Last reply
                                        0
                                        • Christian EhrlicherC Christian Ehrlicher

                                          @JonB It can not work. See my comment about local and member variable. C++ basic stuff.

                                          JonBJ Online
                                          JonBJ Online
                                          JonB
                                          wrote on last edited by JonB
                                          #47

                                          @Christian-Ehrlicher
                                          Hi Christian. Per your comment I did try searching this page for echoLabel (got a bit confused in the formatting), I thought I saw it was a local newed variable. But that's not to do with connecting?

                                          Did you mean echoCombobox? But that is also newed and in scope when connect()ed, and I did not come across a member variable of that name instead? Maybe I mis-searched....

                                          Maybe I should leave you to it, you have perhaps copied the code and played with it.

                                          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 Extensions
                                          • Unsolved