我當時正在玩Qt演示瀏覽器示例here,並且當我嘗試對書籤處理代碼進行小改動時發現了異常。QMenu激活多次
我的意圖是讓工具欄中的書籤在新選項卡中打開,而不是在現有選項卡中打開。它適用於直接位於書籤選項卡上的書籤。但是文件夾內的書籤是那些行爲怪異的書籤。
我在bookmarks.cpp中修改了BookmarksToolBar::activated
SLOT
以在新選項卡而不是現有選項卡中打開網址。那時我注意到SLOT
被多次調用,計數等於菜單渲染的次數。即第一次激活菜單項時,SLOT
被調用一次,下一次激活項時,SLOT
被調用兩次,以此類推。
我認爲必須有多個信號插槽連接,因此我檢查了BookmarksToolBar::build()
方法,其中信號插槽連接完成,並發現控制流只進入一次方法。我發現很難弄清楚SLOT
多次被調用。
該項目的問題是Qt附帶的示例項目「Tab瀏覽器」,可通過點擊Qt-Creator歡迎屏幕上的'Examples'來訪問。因此我沒有在這裏發佈任何源代碼。
任何指導或幫助理解這種異常的原因和可能的解決方案來解決它將不勝感激。
Qt的UniqueConnection連接類型正是這種情況 - http://doc.qt.io/qt-4.8/qt.html#ConnectionType-enum – Shf
@Shf:對我來說太愚蠢了。我不介意設置連接類型。謝謝。 – nnb