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. add QLabel into QLineEdit
Forum Updated to NodeBB v4.3 + New Features

add QLabel into QLineEdit

Scheduled Pinned Locked Moved Solved General and Desktop
32 Posts 5 Posters 16.7k Views 3 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.
  • mrjjM mrjj

    @raven-worx
    oh. So QRegExpValidator can have static text?

    raven-worxR Offline
    raven-worxR Offline
    raven-worx
    Moderators
    wrote on last edited by
    #21

    @mrjj
    Of course, a regular expression can have a static text included

    --- SUPPORT REQUESTS VIA CHAT WILL BE IGNORED ---
    If you have a question please use the forum so others can benefit from the solution in the future

    mrjjM M 2 Replies Last reply
    0
    • raven-worxR raven-worx

      @mrjj
      Of course, a regular expression can have a static text included

      mrjjM Offline
      mrjjM Offline
      mrjj
      Lifetime Qt Champion
      wrote on last edited by
      #22

      @raven-worx
      yes, but i didn't know it would show in lineEdit as Validator sounds so none visual :)

      1 Reply Last reply
      0
      • raven-worxR raven-worx

        @mrjj
        Of course, a regular expression can have a static text included

        M Offline
        M Offline
        marlenet15
        wrote on last edited by
        #23

        @raven-worx Can you please show me an example of that? I have never heard of that and I googled it and I didn't find anything about that :)

        raven-worxR 1 Reply Last reply
        0
        • M marlenet15

          @raven-worx Can you please show me an example of that? I have never heard of that and I googled it and I didn't find anything about that :)

          raven-worxR Offline
          raven-worxR Offline
          raven-worx
          Moderators
          wrote on last edited by
          #24

          @marlenet15
          you can see how to use QRegExpValidator in the link i've posted.
          Use a RegExp similiar to this one. There are tons of material on the web about regexp to learn.

          QRegExp("Comments\\: ([Jan|Feb|Mar|Apr|Jun|Jul|Aug|Sep|Nov|Dec] [0-3]?[0-9] [0-9]{4}\\: (.+))");
          

          This regexp is surely not perfect, but enough to get an idea and continue to learn the syntax i guess.

          --- SUPPORT REQUESTS VIA CHAT WILL BE IGNORED ---
          If you have a question please use the forum so others can benefit from the solution in the future

          kshegunovK M 2 Replies Last reply
          0
          • raven-worxR raven-worx

            @marlenet15
            you can see how to use QRegExpValidator in the link i've posted.
            Use a RegExp similiar to this one. There are tons of material on the web about regexp to learn.

            QRegExp("Comments\\: ([Jan|Feb|Mar|Apr|Jun|Jul|Aug|Sep|Nov|Dec] [0-3]?[0-9] [0-9]{4}\\: (.+))");
            

            This regexp is surely not perfect, but enough to get an idea and continue to learn the syntax i guess.

            kshegunovK Offline
            kshegunovK Offline
            kshegunov
            Moderators
            wrote on last edited by
            #25

            @raven-worx
            If I may interject, [Jan|Feb|Mar|Apr|Jun|Jul|Aug|Sep|Nov|Dec] is not okay for matching one should use a (non-capturing) group instead. i.e: (?:Jan|Feb|Mar|Apr|Jun|Jul|Aug|Sep|Nov|Dec).

            Read and abide by the Qt Code of Conduct

            1 Reply Last reply
            0
            • ValentinMicheletV Offline
              ValentinMicheletV Offline
              ValentinMichelet
              wrote on last edited by
              #26

              My two cents: if you have Qt5, consider using QRegularExpressionValidator and QRegularExpression instead, since the motor has been remarkably improved.

              1 Reply Last reply
              0
              • raven-worxR raven-worx

                @marlenet15
                you can see how to use QRegExpValidator in the link i've posted.
                Use a RegExp similiar to this one. There are tons of material on the web about regexp to learn.

                QRegExp("Comments\\: ([Jan|Feb|Mar|Apr|Jun|Jul|Aug|Sep|Nov|Dec] [0-3]?[0-9] [0-9]{4}\\: (.+))");
                

                This regexp is surely not perfect, but enough to get an idea and continue to learn the syntax i guess.

                M Offline
                M Offline
                marlenet15
                wrote on last edited by marlenet15
                #27

                @raven-worx I just tried it and the amazing thing is the cursor moves automatically moves to the right of the date. However, I can still edit the date and I don't want it to be edited whatsoever. When the mouse clicks the QLineEdit, I want it so that the cursor starts right after the date text. :( Is it possible for this? Thank you so much for you help!

                This is the code I used:

                QRegExp rx("Comments\\: ([Jan|Feb|Mar|Apr|Jun|Jul|Aug|Sep|Nov|Dec] [0-3]?[0-9] [0-9]{4}\\: (.+))");
                QValidator *validator = new QRegExpValidator(rx, this);
                ui->lineEdit->setValidator(validator);
                
                QDate date = QDate::currentDate();
                QTime time = QTime::currentTime();
                ui->lineEdit->setText(date.toString("MMM dd yyyy")+" "+time.toString("hh:mm:ss"));
                
                raven-worxR 1 Reply Last reply
                0
                • M marlenet15

                  @raven-worx I just tried it and the amazing thing is the cursor moves automatically moves to the right of the date. However, I can still edit the date and I don't want it to be edited whatsoever. When the mouse clicks the QLineEdit, I want it so that the cursor starts right after the date text. :( Is it possible for this? Thank you so much for you help!

                  This is the code I used:

                  QRegExp rx("Comments\\: ([Jan|Feb|Mar|Apr|Jun|Jul|Aug|Sep|Nov|Dec] [0-3]?[0-9] [0-9]{4}\\: (.+))");
                  QValidator *validator = new QRegExpValidator(rx, this);
                  ui->lineEdit->setValidator(validator);
                  
                  QDate date = QDate::currentDate();
                  QTime time = QTime::currentTime();
                  ui->lineEdit->setText(date.toString("MMM dd yyyy")+" "+time.toString("hh:mm:ss"));
                  
                  raven-worxR Offline
                  raven-worxR Offline
                  raven-worx
                  Moderators
                  wrote on last edited by raven-worx
                  #28

                  @marlenet15

                  Try this:

                  QString dateTimeStr = QDateTime::currentDateTime().toString("MMM dd yyyy hh:mm:ss");
                  QString rxStr("Comments\\: %1\\: (.+)");
                  QRegExp rx( rxStr.arg(dateTimeStr), Qt::CaseSensitive, QRegExp::RegExp2 );
                  QValidator *validator = new QRegExpValidator(rx, this);
                  ui->lineEdit->setValidator(validator);
                  

                  --- SUPPORT REQUESTS VIA CHAT WILL BE IGNORED ---
                  If you have a question please use the forum so others can benefit from the solution in the future

                  M 1 Reply Last reply
                  1
                  • raven-worxR raven-worx

                    @marlenet15

                    Try this:

                    QString dateTimeStr = QDateTime::currentDateTime().toString("MMM dd yyyy hh:mm:ss");
                    QString rxStr("Comments\\: %1\\: (.+)");
                    QRegExp rx( rxStr.arg(dateTimeStr), Qt::CaseSensitive, QRegExp::RegExp2 );
                    QValidator *validator = new QRegExpValidator(rx, this);
                    ui->lineEdit->setValidator(validator);
                    
                    M Offline
                    M Offline
                    marlenet15
                    wrote on last edited by
                    #29

                    @raven-worx I can still edit the date_time stamp :(

                    kshegunovK 1 Reply Last reply
                    0
                    • M marlenet15

                      @raven-worx I can still edit the date_time stamp :(

                      kshegunovK Offline
                      kshegunovK Offline
                      kshegunov
                      Moderators
                      wrote on last edited by kshegunov
                      #30

                      @marlenet15
                      Hello,
                      I believe you are going to need an input mask after all. I think you should try something like this:

                      QString date = QDateTime::currentDateTime().toString("MMM dd yyyy hh:mm:ss");
                      QString heading = QStringLiteral("Comments %1: %2").arg(date); //< Construct the heading
                      QRegularExpression escaperx(QStringLiteral("([AaNnXx09Dd#HhBb><!\\\\]{1})")); //< Escape regex for input mask special characters
                      heading.replace(escaperx, QStringLiteral("\\\\1")); //< Escape the input mask
                      
                      QString mask = heading.arg("", 255, QLatin1Char('x')); //< Add 255 optional characters to the mask for the user to fill.
                      _dateLabel->setInputMask(mask);
                      

                      Then if you wish you could add a validator to ensure the user has entered correct data.

                      Kind regards.

                      EDIT:
                      I had forgotten to add the actual characters that the user can fill to the mask, but I edited the example and it should be correct now.

                      Read and abide by the Qt Code of Conduct

                      M 1 Reply Last reply
                      2
                      • kshegunovK kshegunov

                        @marlenet15
                        Hello,
                        I believe you are going to need an input mask after all. I think you should try something like this:

                        QString date = QDateTime::currentDateTime().toString("MMM dd yyyy hh:mm:ss");
                        QString heading = QStringLiteral("Comments %1: %2").arg(date); //< Construct the heading
                        QRegularExpression escaperx(QStringLiteral("([AaNnXx09Dd#HhBb><!\\\\]{1})")); //< Escape regex for input mask special characters
                        heading.replace(escaperx, QStringLiteral("\\\\1")); //< Escape the input mask
                        
                        QString mask = heading.arg("", 255, QLatin1Char('x')); //< Add 255 optional characters to the mask for the user to fill.
                        _dateLabel->setInputMask(mask);
                        

                        Then if you wish you could add a validator to ensure the user has entered correct data.

                        Kind regards.

                        EDIT:
                        I had forgotten to add the actual characters that the user can fill to the mask, but I edited the example and it should be correct now.

                        M Offline
                        M Offline
                        marlenet15
                        wrote on last edited by
                        #31

                        @kshegunov it works thank you very much and to everyone!

                        kshegunovK 1 Reply Last reply
                        0
                        • M marlenet15

                          @kshegunov it works thank you very much and to everyone!

                          kshegunovK Offline
                          kshegunovK Offline
                          kshegunov
                          Moderators
                          wrote on last edited by
                          #32

                          @marlenet15
                          No problem, I'm glad I could be of assistance.

                          Read and abide by the Qt Code of Conduct

                          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