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.
  • 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