Qt事件
阿新 • • 發佈:2022-03-05
QEvent
所有的事件都是繼承自這個類
在控制元件中重寫 QEvent 事件的虛擬函式即可。
在Qt的執行機制中,事件是先於訊號的,也就是說,如果過濾這個事件後,不會觸發相應的訊號與槽的函式。 要想繼續觸發,還需要在事件結尾新增一個標準的控制元件(重寫訊號的是自定義控制元件)的觸發訊號。例如這個例子後面的 QWidget::keyPressEvent(event);
;
#include <QKeyEvent> // 重寫這個虛擬函式 virtual void keyPressEvent(QKeyEvent *event); void Widget::keyPressEvent(QKeyEvent *event) { // 這個是104鍵右下角的鍵 if(event->key() ==Qt::Key_Enter){ // ---> 如果按下enter 鍵則觸發這個件 cout << "按下了enter鍵"; } // 這個是鍵盤上的enter鍵 if(event->key() ==Qt::Key_Return){ // ---> 如果按下enter 鍵則觸發這個件 cout << "按下了return鍵"; } // ---> 繼續回傳標準事件,如果不寫,則不會觸發後面的訊號 QWidget::keyPressEvent(event); }