1. 程式人生 > 其它 >Qt事件

Qt事件

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);
}