Qt程式設計 三)

2021-09-26 23:09:50 字數 1323 閱讀 1594

一、定時器

qt中的qtimer有兩種使用方式:

方法一、

訊號: void start(int msec) 成員函式,開啟定時器並設定定時器的時間間隔  單位毫秒

時間到後會發出timeout訊號,連線槽函式即可

方法二、

事件:繼承qtimer類,對該類進行擴充套件,並覆蓋void timerevent(qtimerevent *e)事件

void start(int msec) 成員函式,開啟定時器並設定定時器的時間間隔

時間到後會自動執行timerevent函式

注意:事件函式被執行就不會再產生timeout訊號

二、執行緒

qt中的執行緒類不能直接使用,必須繼承qthread並實現run函式

新的執行緒類物件呼叫start成員函式時會自動執行run函式

1、執行緒的終止

執行緒物件呼叫 void terminate( )成員函式會終止執行緒,但並不會立即終止,這取決於執行緒的排程策略

terminate類似於執行緒的取消操作,而執行緒也可以設定是否響應取消操作,void setterminationenabled(bool enabled=true)

線**正終止時會發射void terminated() 訊號

也可以使用wait函式等待執行緒的終止,還可以**執行緒的資源

類似posix執行緒裡的pthread_join函式

2、執行緒id

static qt::handle currentthreadid()

獲取當前執行緒的id

static qthread* currentthread()

獲取當前執行緒的控制代碼

三、滑鼠與鍵盤事件

控制項其實一直都在監控滑鼠與鍵盤,當滑鼠與鍵盤發生操作時會呼叫控制項中的事件函式,事件函式預設什麼都不做,如果想讓事件函式做一些操作需要繼承控制項並覆蓋事件函式

void mousepressevent(qmouseevent *);         //按下

void mousereleaseevent(qmouseevent *);    //釋放

void mousedoubleclickevent(qmouseevent *);    //雙擊

void mousemoveevent(qmouseevent *);        //按住移動

void keypressevent(qkeyevent *e);

成員函式 text 可以獲取到按鍵的字元

成員函式 key 可以獲取到鍵值 與 qt::keyx 進行比較

//鍵盤彈起事件

void keyreleaseevent(qkeyevent * e);

Qt程式設計 Qt學習筆記《三》

1.如果程式中使用了png以外格式的,在發布程式時就要將qt安裝目錄下plugins中的imagineformats檔案複製到發布檔案中。2.在函式宣告處快速新增函式定義可單擊函式名,按下alt enter鍵後,按下enter鍵就可以進入到函式定義部分。3.關聯槽和訊號的兩種方法 1.直接在設計器中...

Qt介面程式設計 Qt簡介

qt是什麼 為什麼選擇qt 工具 qt構建器 他負責對原始檔 標頭檔案 介面檔案進行解析生成編譯指令碼。qt設計師 對於帶介面應用程式來說,最純粹的方式是通過c c 來編寫整個專案,但這種方式費時又費力,所以我們一般不這樣做介面,而採用一種畫圖的方式,自動生成對應的 所見即所得。qt介面編譯器 它負...

qt串列埠程式設計

本帖被 xchinux 執行加亮操作 2008 04 22 serial.cpp int main int argc,char argv mainwindow.h ifndef main window h define main window h include class qlabel class...