簡體   English   中英

Qt按鍵事件與鍵盤的行為不一樣

[英]Qt Key Event not behaving similar to keyboard

我正在嘗試以編程方式發送鍵盤按鍵。 此功能適用於Tab鍵和其他鍵,但不適用於空格。

Tab和Space的代碼如下所示:

QKeyEvent *event = new QKeyEvent(QKeyEvent::KeyPress, Qt::Key_Tab, Qt::NoModifier);
QCoreApplication::postEvent(this->viewer, event);

QKeyEvent *event = new QKeyEvent(QKeyEvent::KeyPress, Qt::Key_Space, Qt::NoModifier);
QCoreApplication::postEvent(this->viewer, event);

當我以編程方式按Tab鍵時,它會在按鈕之間切換,但是當我以編程方式按空格鍵時,它不會按按鈕(它在按下時會變灰,但屏幕不會像應有的那樣改變)。 當我確實按下鍵盤上的空格鍵時,該按鈕將被按下,並且屏幕將發生變化。

知道為什么行為不一樣嗎?

解決方案是在發送KeyPress事件之后發送KeyRelease事件。 如此處所示:

QKeyEvent *event = new QKeyEvent(QKeyEvent::KeyPress, Qt::Key_Space, Qt::NoModifier);
QCoreApplication::postEvent(this->viewer, event);
QKeyEvent *event = new QKeyEvent(QKeyEvent::KeyRelease, Qt::Key_Space, Qt::NoModifier);
QCoreApplication::postEvent(this->viewer, event);

暫無
暫無

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

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