我有點stucked與創建基於QAction
放在QToolBar
我有以下數據的XML文件下拉按鈕:下拉按鈕在QToolBar不斷變化的領域
<cfg>
<fields>
<group name="First fields">
<field>filed1</field>
<field>filed2</field>
<field>filed3</field>
</group>
<group name="Second fields">
<field>filed4</field>
<field>filed5</field>
<field>filed6</field>
... etc ...
</group>
</fields>
<button name="MyButton1" />
<button name="MyButton2 />
... etc ...
</cfg>
NB :我不知道會有多少場會,以及我不知道會有多少按鈕。
所以,首先,我解析下面的XML文件並提取所需的數據。
對於每個button
我創建了自己的QAction
並將其添加到現有的工具欄。
稍後,我爲每個按鈕創建QMenu
,併爲每個組和字段填充QAction
。我有QAction
爲First fields
,field1
, field2
,等等......
然後,對於每個button
我使用方法,並在那裏添加創建的菜單。
如果我啓動我的應用程序,我可以在下拉菜單中看到工具欄中的按鈕,它們看起來像我期望的。
這裏的問題是我需要爲這些按鈕添加一些功能。
我想允許用戶檢查他們(我用setCheckable
所有QActions
)和取消。當用戶檢查具有組名稱的操作時,與該組相關的所有字段都將被檢查,等等。
由於我不知道啓動時會有多少按鈕和區域,因此很難處理信號和插槽。
它迫使我使用QMap
存儲的創建QAction
,當從該領域的信號被emited,然後使用find方法來尋找那些emited它的行動的所有地址,只對其執行必要採取行動。
問題是:是否有更好的方法來實現我的目標,或者我應該繼續使用這種方法?
聽起來不錯。實際上,我做了同樣的事情,但我用'QMap'代替。 – tema