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 13.8k 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 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 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 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
                                • 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 Offline
                                    JonBJ Offline
                                    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
                                    • JonBJ JonB

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

                                      @JonB You might be right. The code formatting (and useless reposting instead editing the former post) and the difference between the source and the header which makes the whole stuff uncompilable as the header is missing the slot definition for onCurrentTextChanged() confused me. Wonder (every time again) what's so hard writing a minimal and compileable example.

                                      JonBJ 1 Reply Last reply
                                      0
                                      • Christian EhrlicherC Christian Ehrlicher

                                        @JonB You might be right. The code formatting (and useless reposting instead editing the former post) and the difference between the source and the header which makes the whole stuff uncompilable as the header is missing the slot definition for onCurrentTextChanged() confused me. Wonder (every time again) what's so hard writing a minimal and compileable example.

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

                                        @Christian-Ehrlicher
                                        If you are correct OP will not even get past my point #1. That is why I suggest they follow those in order and we will know where they do/do not get to :)

                                        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

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

                                          @Christian-Ehrlicher @JonB
                                          sorry for the typos.. please read as the " this was how it showed*** up after posting NewWidget.cpp

                                          JonBJ 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