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. VirtualKeyboard, Program crash when input out of range char to a QLineEdit with validator
Forum Updated to NodeBB v4.3 + New Features

VirtualKeyboard, Program crash when input out of range char to a QLineEdit with validator

Scheduled Pinned Locked Moved Unsolved General and Desktop
15 Posts 3 Posters 1.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.
  • A Offline
    A Offline
    Anima
    wrote on last edited by Anima
    #4

    @SGaist said in VirtualKeyboard, Program crash when input out of range char to a QLineEdit with validator:

    QRegularExpressionValidator

    Thanks, SGaist.
    And Yes. I tryed QRegularExpressionValidator and QIntValidator, still got the same result:

        m_pEdit->setValidator(new QRegularExpressionValidator(QRegularExpression(u8"^([0-9]|[1-9][0-9]{1,2})")));
    //  m_pEdit->setValidator(new QIntValidator(0, 100));
    

    And I noticed that, if I directly put the QLineEdit on MainWindow other than MyDialog, everything is OK.

    1 Reply Last reply
    0
    • A Offline
      A Offline
      Anima
      wrote on last edited by
      #5

      The stack trace.

      1.png

      2.png

      1 Reply Last reply
      0
      • SGaistS SGaist

        Hi and welcome to devnet,

        Can you show the stack trace of your crash ?
        Do you have the same issue if you use a QRegularExpressionValidator ?

        A Offline
        A Offline
        Anima
        wrote on last edited by Anima
        #6

        @SGaist
        Do you have any suggestion? Thank you.

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

          What if you use the following:

          MyDialog::MyDialog(QWidget *parent):
              QDialog(parent)
          {
               m_pEdit = new QLineEdit(this);
               m_pEdit->setValidator(new QRegularExpressionValidator(QRegExp(u8"^([0-9]|[1-9][0-9]{1,2})")));
          }
           
          MyDialog::~MyDialog()
          {
          }
          

          ?

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

          A 1 Reply Last reply
          0
          • Z Offline
            Z Offline
            zhangqinagqiag
            wrote on last edited by
            #8

            This problem also exists in 5.15.2,As long as it is a pop-up window and uses both virtual keyboard and physical keyboard, it will crash

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

              Which compiler are you using ?

              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
              • SGaistS SGaist

                What if you use the following:

                MyDialog::MyDialog(QWidget *parent):
                    QDialog(parent)
                {
                     m_pEdit = new QLineEdit(this);
                     m_pEdit->setValidator(new QRegularExpressionValidator(QRegExp(u8"^([0-9]|[1-9][0-9]{1,2})")));
                }
                 
                MyDialog::~MyDialog()
                {
                }
                

                ?

                A Offline
                A Offline
                Anima
                wrote on last edited by Anima
                #10

                @SGaist
                Thanks.
                The issue still exists after set the parent of MyDialog.
                The compiler I'm using is Microsoft Visual C++ compiler 14.0.
                I also tried MinGW 8.1.0 on Windows 10, got the same issue.

                But on Ubuntu 18.04, the same program, built by Qt5.12.10 and g++, works fine. I think it may be a platfrom specific bug.

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

                  Might be indeed.

                  One last test, what happens if you use open in place of exec ?

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

                  A 1 Reply Last reply
                  0
                  • SGaistS SGaist

                    Might be indeed.

                    One last test, what happens if you use open in place of exec ?

                    A Offline
                    A Offline
                    Anima
                    wrote on last edited by
                    #12

                    @SGaist
                    I modified the program as below, and still got the same result. Program crashed after I tapped illegal keys with physical keyboard.

                    void QtGuiApplication1::onBtnClicked()
                    {
                        MyDialog* dlg = new MyDialog(this);
                        dlg->open();
                    }
                    
                    1 Reply Last reply
                    0
                    • SGaistS Offline
                      SGaistS Offline
                      SGaist
                      Lifetime Qt Champion
                      wrote on last edited by
                      #13

                      Then I would say a bug report is the next step.

                      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
                        Anima
                        wrote on last edited by
                        #14

                        The issue is a known bug QTBUG-9304.
                        Unfortunately, it will not be fixed for Qt5.12.

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

                          From the looks of the patch, you should be able to port it to 5.12 and build the module yourself with it.

                          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

                          • Login

                          • Login or register to search.
                          • First post
                            Last post
                          0
                          • Categories
                          • Recent
                          • Tags
                          • Popular
                          • Users
                          • Groups
                          • Search
                          • Get Qt Extensions
                          • Unsolved