Skip to content
  • Categories
  • Recent
  • Tags
  • Popular
  • Users
  • Groups
  • Search
  • Get Qt Extensions
  • Unsolved
Collapse
Brand Logo
  1. Home
  2. Qt Development
  3. General and Desktop
  4. [Solved] Reading characters from QInputDialog and concatenating/append
Forum Updated to NodeBB v4.3 + New Features

[Solved] Reading characters from QInputDialog and concatenating/append

Scheduled Pinned Locked Moved General and Desktop
15 Posts 2 Posters 4.1k 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.
  • A Offline
    A Offline
    aquanaut
    wrote on last edited by
    #4

    I was looking at count 4 letters after the space between the name and surname , so as soon as the code sees the space it counts 4 letters and stores it. Then appends the first letter of the first name to the end of the four letters.

    I am not sure if I am making this more complex then it is.

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

      Yes you are

      @
      bool ok;
      QString fromDialog = QInput::getText(//your settings);

      if (ok && !fromDialog.isEmpty()) {
      QStringList elements = fromDialog.split(" ");
      username = elements[0].left(4) + elements[1].left(1);
      }
      @

      Note that this make several assumptions like your user will indeed input two elements, that they are in the right order and of sufficient length.

      Since your user must give such information, you should rather do a dialog where it's clear what they must give you otherwise you'll get user that give first name then last name and other who will do it in the other order

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

      1 Reply Last reply
      0
      • A Offline
        A Offline
        aquanaut
        wrote on last edited by
        #6

        So I am having 2 issues with my code:

        The one is displaying the username and password in the QMessagebox and the other is generating the random password from the appended string.

        I am sure it is some small issues but I am not picking it up. I am using QT 5.3.0

        Here is my code:

        @// Declarations of variables
        bool ok;
        QString fullName;
        QString userName;
        QString passWord;
        QString genPass;

         fullName = QInputDialog::getText(0,"Username","Please Enter Name and Surname:", QLineEdit::Normal," ", &ok);
        
        
         if (ok && !fullName.isEmpty()) {
         QStringList elements = fullName.split(" ");
         userName = elements[0].left(4) + elements[1].left(1);
         }
        
        
         //If username is less than five characters
         while (userName.length() < 5) {
             userName += '0';
         }
        
        
         //Remove all whitespaces from string
         userName = userName.simplified();
         userName.replace( " ", "" );
        
         //First letter of username to uppercase
              userName = " ";
              userName.replace(0, 1, userName[0].toUpper());
        
              passWord = userName;
        
              //For loop to generate random password of 5 characters from concatenated name/surname string
              for (int i = 0; i < 5; i++){
                  passWord[i] = genPass [qrand() % (sizeof (genPass) -1)];
        
               do{
                     passWord[i] = genPass [qrand() % (sizeof (genPass) -1)];
                    }while (passWord[i] = ' ');
                                                      }
        
        
                //QMessageBox to display username and password
                        QString response = QString(" Username: %1 \n Password: %2") .arg(userName).arg(passWord);
                         QMessageBox::question(0, "Username and Password", response, QMessageBox::Ok);
        

        return EXIT_SUCCESS;
        }
        @

        1 Reply Last reply
        0
        • A Offline
          A Offline
          aquanaut
          wrote on last edited by
          #7

          Hi SGalst, is there a better way to do the password generator.

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

            You can inspiration from e.g. "here":http://www.cplusplus.com/forum/windows/88843/

            What issues are you facing ?

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

            1 Reply Last reply
            0
            • A Offline
              A Offline
              aquanaut
              wrote on last edited by
              #9

              Just 2 issues:

              1. The QMessageBox is not displaying the concatenated username or the password.

              2. My randomizer is not generating random 5 character passwords from the concatenated first name and surname.

              I will look at the link as well.

              Thanks

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

                What are you currently getting in your message box ?

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

                1 Reply Last reply
                0
                • A Offline
                  A Offline
                  aquanaut
                  wrote on last edited by
                  #11

                  Nothing at all. It just pops up when I press OK and shows the username: and password: but with no data.

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

                    @ //First letter of username to uppercase
                    userName = " "; << You're a replacing userName content with a space
                    userName.replace(0, 1, userName[0].toUpper());
                    @

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

                    1 Reply Last reply
                    0
                    • A Offline
                      A Offline
                      aquanaut
                      wrote on last edited by
                      #13

                      Thanks, that fixed the username display issue.

                      When I enter the fullname of john black , I get Johnb instead of Blacj

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

                        Like I said, using only one input your user can put their information in the order they want so first name/last name or last name/first name. You really should write a little custom dialog that uses two QLineEdit for that. It will be clearer for your users

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

                        1 Reply Last reply
                        0
                        • A Offline
                          A Offline
                          aquanaut
                          wrote on last edited by
                          #15

                          SGalst thanks for all the assistance. I have solved the issues.

                          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