Uploaded image for project: 'Qt'
  1. Qt
  2. QTBUG-41256

French keyboard's dot key (numeric keypad) does not work as input

XMLWordPrintable

    • Icon: Bug Bug
    • Resolution: Unresolved
    • Icon: P2: Important P2: Important
    • None
    • 5.2.1
    • None
    • Windows

      I'm working on a French Windows 7 computer.

      When I try to type a decimal number in a QDoubleSpinBox control or a QLineEdit validated by a QDoubleValidator, pressing the dot numeric keypad button does nothing....I would expect it to insert a decimal separator!

      Like Microsoft Excel does: if I press "1" "." and "2" from the numeric keypad, is writes "1,2" in the selected cell (because "," is the decimal separator on my machine).

      I attached a main.cpp as an example.

       
      #include <QApplication>
      #include <QVBoxLayout>
      #include <QLabel>
      #include <QSpinBox>
      #include <QDialog>
      #include <QDoubleValidator>
      #include <QLineEdit>
      
      class Dialog : public QDialog
      {
      public:
          Dialog()
          {
              QVBoxLayout* layout = new QVBoxLayout( this );
      
              layout->addWidget( new QLabel( QLocale().toString( 3.14 ), this ) );
              layout->addWidget( new QDoubleSpinBox( this ) );
      
              QLineEdit* edit = new QLineEdit( this );
              edit->setValidator( new QDoubleValidator() );
              layout->addWidget( edit );
          }
      };
      
      int main(int argc, char *argv[])
      {
          QApplication a(argc, argv);
      
          Dialog w;
          w.show();
      
          return a.exec();
      }
      

      When compiled and executed, here's what I see:

      • The QLabel displays "3,14" which means french QLocale is correctly used (else, it would display 3.14, english default stype). OK
      • The QDoubleSpinBox diplays "0,00". OK
      • I can type a decimal value in the spinbox using the ',' standard keyboard key. OK
      • I cannot type a decimal value in the spinbox using the '.' standard keyboard key. OK
      • But when I press the dot key from my numerical French keypad, nothing happens! This is supposed to enter a decimal separator, whatever locale setting is being used!

      Note: Qt 4.7 used to work fine displaying and using "." as a separator, Qt 5.2 appears to be smart enough to automatically change "." to "," on my PC, but not smart enough to make the keypad "." key work

        1. main.cpp
          0.7 kB
        2. keypad.png
          keypad.png
          3 kB
        No reviews matched the request. Check your Options in the drop-down menu of this sections header.

            peppe Giuseppe D'Angelo
            jpo38 Jean Porcherot
            Votes:
            8 Vote for this issue
            Watchers:
            11 Start watching this issue

              Created:
              Updated:

                There are no open Gerrit changes