2017-05-09 137 views
-2

對不起,我不可能是特定的,因爲我被困在一堆混亂的類和幾個信號/插槽中。Qt C++信號插槽 - 清除信號所必需的?

在我的項目中,我使用了幾個信號插槽。現在我的印象是,根據我發起信號的頻率,我的插槽會多次運行。

對於第一個朗姆酒我的槽是運行一次;在第二次運行時,它會運行兩次....當我關閉程序時,我再次運行一次。

是否需要以某種方式完成/結束/刪除信號發送後?

謝謝

回答

3

看一看Qt::UniqueConnection標誌。

+0

謝謝!就是這樣!我有一個私人插槽on_pusbButton_cklicked()。在這個我有一個信號插槽。當我第二次按下按鈕時,我有兩個連接:-) – user3443063

0

A中的信號保持連接,無論是使用了disconnect()直到,或發送者或接收者被刪除。 所以每個信號/時隙對必須僅連接一次,然後每次發射信號時,該時隙被調用。

1

您將信號連接到插槽以響應事件。當事件重複時,這會導致重複的連接。在大多數情況下,這是一個錯誤。通常你想在類的構造函數中建立連接,否則當創建新對象並將其添加到系統時。

獨特的連接將掩蓋問題,但不能解決問題 - 解決方案是將connect語句移動到不會重新執行的位置。