簡體   English   中英

始終對隱藏的小部件有重點政策? (Qt C ++)

[英]Always have focus policy on hidden widget? (Qt C++)

我正在學習在Qt(C ++)中處理keypress和keyrelease事件。 我有一個類鍵盤,我想要處理所有這些事件。 它繼承了QObject。 它不需要處理任何鼠標事件。 我試圖找出當我的應用程序對該類打開時如何指示所有鍵盤輸入。

我已經嘗試將它作為一個小部件添加到我的MainWindow類的布局中並隱藏它(小部件,而不是布局)。 目前,這沒有回應。

我也在我的MainWindow課程中嘗試過這個:

void MainWindow::keyPressEvent(QKeyEvent *event)
{
    keys->keyPressEvent(event); 
    //Keys is a Keyboard object with this public method:
    //void keyPressEvent(QKeyEvent *event);
} 

但那也沒有用。 在我的Keyboard :: Keyboard()構造函數中,我有:

this->setFocusPolicy(Qt::StrongFocus);

我不確定是否還需要做其他事情以確保鍵盤輸入到達那里。

helpful! 如果有人知道如何為我的Qt應用程序將所有鍵盤事件發送到此類,那將有用!

謝謝,

約翰

對於任何想要了解的人,我找到了我的問題的答案。

在處理我的鍵盤事件的類的構造函數中,我添加了以下行:

QWidget::grabKeyboard();

現在,當該應用程序處於活動狀態時,所有鍵盤輸入都直接進入該小部件。 您可以查看參考資料以獲取更多信息: QWidget :: grabKeyboard

注意:在調用QWidget::releaseKeyboard()之前,沒有別的東西(即沒有其他小部件)會得到鍵盤輸入。

暫無
暫無

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

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