Qt中QObject sender 的用法

2021-10-21 14:16:52 字數 623 閱讀 4873

當某乙個object emit乙個signal的時候,它就是乙個sender,系統會記錄下當前是誰emit出這個signal的,所以你在對應的slot裡就可以通過 sender()得到當前是那個物件呼叫了你的slot,對應的是qobject->d->sender.

例如:多個按鍵對應乙個按鍵處理槽函式,這時候就需要判斷是哪乙個按鍵發出訊號觸發了槽函式,這時候就可以通過sender的不同來進行不同的處理,以下就是獲取其發出訊號物件的方法

qpushbutton*editor = qobject_cast>

(sender()

);

當然也可以寫成

qpushbutton*editor =

static_cast

>

(sender()

);

為了方便其實只需要獲取該物件的名字就可以知道是哪個物件了,所以我更傾向於以下方法

qstring str =

static_cast

(this

->

sender()

->

objectname()

);

Qt 筆記 Qt中的IO操作

qt中io操作的處理方式 qt通過統一的介面簡化了檔案與外部裝置的操作方式 qt中的檔案被看做一種特殊的外部裝置 qt中的檔案操作與外部裝置的操作相同 io操作中的關鍵函式介面 開啟裝置 bool open openmode mode 讀取資料 qbytearray read qint64 maxs...

Qt中socket程式設計

在linux下進行網路程式設計,我們可以使用linux提供的統一的套接字介面。但是這種方法牽涉到太多的結構體,比如ip位址,埠轉換等,不熟練的人往往容易犯這樣那樣的錯誤。qt中提供的socket完全使用了類的封裝機制,使使用者不需要接觸底層的各種結構體操作。而且它採用qt本身的signal slot...

QT中的執行緒

qt中的執行緒是不可以執行ui內容的,一般情況,執行邏輯運算就可以,但是,如果讓執行緒中用到ui,就需要用到 訊號和槽 的機制了 如果執行緒用到 訊號和槽 執行緒的定義就需要放到主介面定義的檔案中了 q object 否則編譯出錯 部分 如下 ifndef proc h define proc h ...