簡體   English   中英

Qt中的keyPressEvent中a到z的鍵盤字母不起作用

[英]Keyboard letters of a to z are not working in keyPressEvent in Qt

我在我的應用程序中使用KeyPressEvent 但是從a到z的字母不起作用。

void mywindow::keyPressEvent(QKeyEvent *event)
{
    switch(event->key())
    {
        case Qt::Key_Left:
            break;
    }
}

這工作正常

但是,當我使用Key_RKey_L它不起作用。

編輯:keyReleaseEvent使用這些字母。

嘗試這個:

void SimpleWidget::keyPressEvent(QKeyEvent *event)
{
    if (event->key() == Qt::Key_R)
    {
        // Key R was pressed
    }
}

或者,您可以簡單地使用QString QKeyEvent::text () const方法檢查鍵值。

不知道您仍然需要它,但是也許有人會。

我處在相同的情況下,當按a到z字母時,沒有事件發送到我的QMainWindow,但是ctrl,cmd,alt或esc ...正在工作。

我解決了將此問題添加到構造函數中的問題。

this->setFocusPolicy ( Qt::StrongFocus );

閱讀setFocusPolicy文檔

然后

MyQMainWindow::keyPressEvent(:keyPressEvent(QKeyEvent *pevent)
{
    if (pevent->key() == Qt::Key_Control)
        qDebug() << "ctrl pressed";
    if (pevent->key() == Qt::Key_A)
        qDebug() << "a pressed";
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM