2011-03-17 24 views
0

已經看到關於設計和管理菜單和動作下的「stackoverflow」論壇的早期現有討論&在Qt Creator下開發(參見「如何在Qt Creator中連接菜單點擊和動作?」:How to connect menu click with action in Qt Creator?),恐怕我對工具欄中的動作按鈕有同樣的問題,我正試圖用Qt創建器來創建 ...如何使用Qt Creator的工具欄中的用戶按鈕的動作/插槽功能連接按鈕單擊信號(「觸發」信號)?

所以,我們開始吧!

(1)我創建了動作編輯器的至少一個動作...... (2)我拖&下降這一行動到工具欄

(步驟1 & 2都OK,這些部分上沒有困難,儘管對我來說這是一種非常不尋常的方式,因爲其他UIM設計工具通常會提出相反的步驟,在我看來這更「自然」,但我知道,許多許多事情存在並共存於我們的軟件設計世界&編程...)

=>(3)如何關聯(連接)當按下給定的工具欄按鈕時應該調用的函數(我要實現)?

我的意思是,如何將給定動作(工具欄按鈕)的「已觸發」信號連接到所需插槽(功能)以便稍後執行......?是否有可能通過Qt Creator中的「信號和插槽編輯器」來做這些事情,還是我必須通過代碼中的某個地方自己調用「connect()」來實現此目的?非常感謝在這一點上任何幫助/建議/詳細的例子,爲完美的初學者...

事實上,我會知道它可能不會自己調用connect()這樣的需要和更Qt Creator會自行創建插槽(功能)原型,或者我們必須在Qt Creator考慮新插槽(功能)原型之前創建自己的插槽(功能)原型,並真正幫助/幫助用戶/開發人員在此常規/正常的UIM設計步驟/設計能力......?

此致敬禮。

阿蘭 - 皮埃爾·

回答

0

如果QAction是一個成員,如果你的窗口,然後正常

QMetaObject::connectSlotsByName(SettingsDialog); 

...將適當命名的插槽連接方法的動作的trigger信號。這通常由使用設計器創建的GUI類自動調用。因此,如果動作被命名爲actionSomething例如,創建您的GUI類插槽與一個簽名,如:

void on_actionSomething_triggered(); 

...將意味着您不必手動connect信號和槽。

此外,右鍵單擊在動作編輯器中的動作,然後選擇「轉到槽......」可以讓你對任何信號的操作可能會發出創建插槽功能。