Qt中QObject sender 的用法

2021-08-06 01:29:22 字數 644 閱讀 7036

qt中qobject::sender()的用法

當某乙個object emit乙個signal的時候,它就是乙個sender,系統會記錄下當前是誰emit出這個signal的,

所以你在對應的slot裡就可以通過 sender()得到當前是誰invoke了你的slot,對應的是qobject->d->sender.

有可能多個object的signal會連線到同乙個signal(例如多個button可能會connect到乙個slot函式onclick()),因此這是就需要判斷到底是哪個object emit了這個signal,根據sender的不同來進行不同的處理

qobject::sender()返回傳送訊號的物件的指標,返回型別為qobject *

示例**:

qtimeedit *editor = qobject_cast(sender());  

此時可以對editor進行進一步的處理了。

你在乙個槽裡面,呼叫這個函式,返回的就是你訊號**的物件;qpushbutton *aaaa = new qpushbutton(this);

比如 connect(aaaaa, signal(click()), this, slot(onaaaaa());

void onaaaaa()這個ccc就是aaaa這個物件來的。

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 ...