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.2k 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
    #3

    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 ?

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