[QGIS-Developer] Access to shapeDigitizeToolBar menu's text

Jacky Volpes jacky.volpes at oslandia.com
Wed Mar 6 01:11:33 PST 2024


Hi Luke,

It works with setDisabled on action_item.
Be careful not to call setDisabled on every action of a category, then 
yes, it disables the entire icon.

Updated snippet for example:

actions_list = []
sdtb = iface.shapeDigitizeToolBar()
for i, action_widget_item in enumerate(sdtb.actions()):
     if action_widget_item.defaultWidget().menu() is None:
actions_list.append(action_widget_item.defaultWidget().defaultAction())
         continue
     actions_list += action_widget_item.defaultWidget().menu().actions()

actions_ids = ['rectangle-from-extent', 'circle-from-3-points']  # 
actions ids to disable
[a.setDisabled(True) for a in actions_list if a.data() in actions_ids]  
# disable the actions



Jacky Volpes

Ingénieur SIG - Oslandia




Le 05/03/2024 à 19:32, Catania, Luke A ERDC-RDE-GRL-VA CIV a écrit :
>
> When I use setDisabled on either action_widget_item.defaultWidget or 
> action_item it sets the disables the entire icon as opposed to the 
> specific action item found.  Maybe I am missing something.  Like I 
> don’t want the user to be able to draw an Ellipse from Foci so I 
> disable that, but it disables the entire icon of menus for drawing 
> Elipses.
>
> *From:* Jacky Volpes <jacky.volpes at oslandia.com>
> *Sent:* Tuesday, February 27, 2024 5:29 AM
> *To:* Catania, Luke A ERDC-RDE-GRL-VA CIV 
> <Luke.A.Catania at erdc.dren.mil>; qgis-developer at lists.osgeo.org
> *Subject:* Re: [QGIS-Developer] Access to shapeDigitizeToolBar menu's text
>
> Hi Luke,
>
> As you can see on the printed text, objects are QWigetAction, not QAction.
> This is because you get each category of the tool bar, where then each 
> one contains one or more digitizing QActions.
>
>
> Here is a snippet that can help you explore the tool bar:
>
>
> sdtb = iface.shapeDigitizeToolBar()
> for i, action_widget_item in enumerate(sdtb.actions()):
>     print(f"{i}: {action_widget_item.defaultWidget().text()}")
>     for j, action_item in 
> enumerate(action_widget_item.defaultWidget().menu().actions()):
>         print (f"\t{j}: {action_item.data()}")  # id like
>         print (f"\t\ttranslated text: {action_item.text()}")
>
>
> Regards,
>
> Jacky Volpes
> Ingénieur SIG - Oslandia
>
>
> Le 27/02/2024 à 04:10, Catania, Luke A ERDC-RDE-GRL-VA CIV via 
> QGIS-Developer a écrit :
>
>     Trying to get access to the button menus in shapeDigitizeToolBar.
>
>     from qgis.utils import iface
>
>     from PyQt5.QtWidgets import QWidgetAction
>
>     sdtb = iface.shapeDigitizeToolBar()
>
>     i=0
>
>     for action_item in sdtb.actions():
>
>         i=i+1
>
>         print (f"{i}: {action_item}")
>
>     This prints:
>
>     1: <PyQt5.QtWidgets.QWidgetAction object at 0x00000242801E98B0>
>
>     2: <PyQt5.QtWidgets.QWidgetAction object at 0x00000242F9E43F70>
>
>     3: <PyQt5.QtWidgets.QWidgetAction object at 0x00000242F9E590D0>
>
>     4: <PyQt5.QtWidgets.QWidgetAction object at 0x00000242F9E9E1F0>
>
>     5: <PyQt5.QtWidgets.QWidgetAction object at 0x00000242F9E274C0>
>
>     I want to access each button and the menus of the button so I can
>     disable certain tools.  I need to get the text associated with the
>     tools so I can key on that.
>
>     I can’t figure out how to get to them from QWidgetAction. I called
>     all the methods on QAction that returns a string: data, iconText,
>     statusTip, whatsThis and they all return empty strings.  So how
>     are these menus labeled.
>
>     Thanks,
>
>     Luke
>
>
>
>     _______________________________________________
>
>     QGIS-Developer mailing list
>
>     QGIS-Developer at lists.osgeo.org
>
>     List info:Blockedhttps://lists.osgeo.org/mailman/listinfo/qgis-developerBlocked  <Blockedhttps://lists.osgeo.org/mailman/listinfo/qgis-developerBlocked>
>
>     Unsubscribe:Blockedhttps://lists.osgeo.org/mailman/listinfo/qgis-developerBlocked  <Blockedhttps://lists.osgeo.org/mailman/listinfo/qgis-developerBlocked>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.osgeo.org/pipermail/qgis-developer/attachments/20240306/9fb26cda/attachment-0001.htm>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: QxDYD5HtTuRDL5Gb.png
Type: image/png
Size: 19232 bytes
Desc: not available
URL: <http://lists.osgeo.org/pipermail/qgis-developer/attachments/20240306/9fb26cda/attachment-0002.png>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: image001.png
Type: image/png
Size: 22696 bytes
Desc: not available
URL: <http://lists.osgeo.org/pipermail/qgis-developer/attachments/20240306/9fb26cda/attachment-0003.png>


More information about the QGIS-Developer mailing list