[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