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. MacOS ignore keyevent filters
Forum Updated to NodeBB v4.3 + New Features

MacOS ignore keyevent filters

Scheduled Pinned Locked Moved General and Desktop
1 Posts 1 Posters 973 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.
  • R Offline
    R Offline
    RazrFalcon
    wrote on last edited by
    #1

    I need to prevent entering non HEX symbols into QLineEdit, but default setInputMask work not really good for me.
    So I tried to write it by myself:
    @bool LineEdit::eventFilter(QObject *obj, QEvent *event)
    {
    if (obj == this) {
    if (event->type() == QEvent::KeyPress)
    {
    QKeyEvent *keyEvent = static_cast<QKeyEvent *>(event);
    if (!keyEvent->text().contains(QRegExp("[^a-fA-F0-9]")) && !keyEvent->text().isEmpty())
    // bruteforce way
    // if (keyEvent->key() == Qt::Key_A
    // || keyEvent->key() == Qt::Key_B
    // || keyEvent->key() == Qt::Key_C
    // || keyEvent->key() == Qt::Key_D
    // || keyEvent->key() == Qt::Key_E
    // || keyEvent->key() == Qt::Key_F
    // || keyEvent->key() == Qt::Key_0
    // || keyEvent->key() == Qt::Key_1
    // || keyEvent->key() == Qt::Key_2
    // || keyEvent->key() == Qt::Key_3
    // || keyEvent->key() == Qt::Key_4
    // || keyEvent->key() == Qt::Key_5
    // || keyEvent->key() == Qt::Key_6
    // || keyEvent->key() == Qt::Key_7
    // || keyEvent->key() == Qt::Key_8
    // || keyEvent->key() == Qt::Key_9)
    {
    this->setText(this->text() + keyEvent->text().toUpper());
    return true;
    } else {
    return true;
    }
    }
    }
    return QLineEdit::eventFilter(obj, event);
    }@

    On Linux all works fine, but on Mac I can enter cyrillic symbols. And I can't prevent it in any ways.
    And any of methods I trying, can't prevent it.

    Is it Mac bug?

    Here is minimal compilable example:
    http://rghost.ru/download/41304261/a1f3826a4a0964e3446e24554f63f95082e4e6c8/keyevent-test.zip

    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