我正在使用QTableWidget。在cellChanged()信號上,我添加或更新了sqlite數據庫中的一行。執行我的SQL語句後,我想將一個按鈕/ CellWidget添加到此行中的項目。由於這是單元格的更改,因此它會更改項目的內容並創建一個循環。QT,QTableWidget:使用cellChanged()更改項目 - 信號
如何避免此循環?
我正在使用QTableWidget。在cellChanged()信號上,我添加或更新了sqlite數據庫中的一行。執行我的SQL語句後,我想將一個按鈕/ CellWidget添加到此行中的項目。由於這是單元格的更改,因此它會更改項目的內容並創建一個循環。QT,QTableWidget:使用cellChanged()更改項目 - 信號
如何避免此循環?
您有其他方法可供您使用。使用一個互斥變量(例如布爾值)來控制你是否應該在你的sql數據庫中添加/更新一行,你可以在執行SQL語句後忽略這個信號。在將按鈕添加到行後,可以釋放互斥變量。
這種方法可能比斷開/連接自動更新操作周圍的信號/插槽便宜。如果信號經常被觸發,這可能是解決方案。
忽略是個好主意。 blockSignals(true)接縫工作。 – madc
此刻我斷開功能頂部的信號,然後再次連接。有沒有更好的解決方案? – madc