Skip to content
  • Categories
  • Recent
  • Tags
  • Popular
  • Users
  • Groups
  • Search
  • Get Qt Extensions
  • Unsolved
Collapse
Brand Logo
  1. Home
  2. International
  3. Polish
  4. Problem QKeyEvent
Forum Update on Monday, May 27th 2025

Problem QKeyEvent

Scheduled Pinned Locked Moved Unsolved Polish
1 Posts 1 Posters 723 Views
  • 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.
  • L Offline
    L Offline
    lbrycht
    wrote on last edited by
    #1

    Witam,

    Projektuję aplikację pod Debianem, gdzie na docelowym urządzeniu nie będę miał dostępu do klawiatury systemowej. Jest za to panel przycisków monitora podłączonych przez RS232. Kwestia odbioru danych w osobnym procesie jest opanowana. Przyciski mają symulować klawisze Tab, BackTab, Strzałki i Enter.
    W klasie głównego okna dialogowego robię emit sygnałów odpowiednich przycisków, tj.

    if(key == KEY_TAB)
    {
        emit KeyPressTab();
    }
    

    Sygnał ten jest przechwytywany w poszczególnych oknach dialogowych za pomocą połączenia:

    QObject::connect(mainWindow, SIGNAL(KeyPressTab()), this, SLOT(OnKeyPressTab()));
    

    Z kolei sama funkcja slotu to:

    void DialogBoczny::OnKeyPressTab()
    {
        QKeyEvent event(QEvent::KeyPress, Qt::Key_Tab, Qt::NoModifier);
        QApplication::sendEvent( this, &event);
    }
    

    Tym sposobem Tabulacja i BackTabulacja(Shift+Tab) działa bez problemu, ale strzałki i enter nie działają.
    Korzystam z tego samego mechanizmu, np:

    -------------------------------Głowne Okno-----------------------------
    if(key == KEY_TAB)
        emit KeyPressLeft();
    
    -------------------------------Dialog Boczny----------------------------
    QObject::connect(mainWindow, SIGNAL(KeyPressLeft()), this, SLOT(OnKeyPressLeft()));
    
    void DialogBoczny::OnKeyPressLeft()
    {
        QKeyEvent event(QEvent::KeyPress, Qt::Key_Left, Qt::NoModifier);
        QApplication::sendEvent( this, &event);
    }
    

    Niestety brak reakcji.
    Proszę o pomoc.

    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