QT事件的產生##
1.操作系統產生###
操作系統將獲取的事件,比如鼠標按鍵,鍵盤按鍵等keyPressEvent,keyReleaseEvent,mousePressEvent,mouseReleaseEvent事件, 放入系統的消息隊列中,Qt事件循環的時候讀取消息隊列中的事件,轉化為QEvent,再依次處理。
2.QT應用程序自己產生###
程序產生事件有兩種方式, 一種是調用QApplication::postEvent(), 例如QWidget::update()函數,當需要重新繪制屏幕時,程序調用update()函數,new出來一個paintEvent,調用 QApplication::postEvent(),將其放入Qt的消息隊列中,等待依次被處理;另一種方式是調用sendEvent()函數,事件不會放入隊列, 而是直接被派發和處理, QWidget::repaint()函數用的就是這種方式。