Qt笔记-解决键盘事件不能正常响应(其他响应事件通用)
生活随笔
收集整理的這篇文章主要介紹了
Qt笔记-解决键盘事件不能正常响应(其他响应事件通用)
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
比如在主Widget中寫了KeyPressEvent卻發現部分按鍵不能響應,或者全部都不能響應。
造成這個原因是因為,響應事件被其他控件劫持了(Qt中有些控件自帶劫持,響應某些按鍵)。
解決方法:
找到這個控件,再把信號轉發出去就可以了或者忽略此信號,這樣父類就可能會獲取到。
如下面這個例子:
主界面的是QWidget,里面放了一個QGraphicsView。
當我重寫QWidget的KeyPress事件后,發現小鍵盤 上下左右,不能拿到,發現是QGaphicsView劫持了。
因為QGraphicView的父類是QWidget,所以這么做就能轉發出去了。
void ChessBoardView::keyPressEvent(QKeyEvent *keyEvent) {parent()->event((QEvent *)keyEvent); }其他的也是一樣的。
或者將Event設置為ignore()
?如下代碼:
?
void ChessBoardView::keyPressEvent(QKeyEvent *keyEvent) { // parent()->event((QEvent *)keyEvent);keyEvent->accept(); }總結
以上是生活随笔為你收集整理的Qt笔记-解决键盘事件不能正常响应(其他响应事件通用)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Python笔记-类的单例模式及重载打印
- 下一篇: MySQL笔记-简单配置主从库