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

Catania, Luke A ERDC-RDE-GRL-VA CIV Luke.A.Catania at erdc.dren.mil
Tue Mar 5 10:32:54 PST 2024


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.
[cid:image001.png at 01DA6F01.9FA2FBC0]

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<mailto:QGIS-Developer at lists.osgeo.org>

List info: Blockedhttps://lists.osgeo.org/mailman/listinfo/qgis-developerBlocked

Unsubscribe: Blockedhttps://lists.osgeo.org/mailman/listinfo/qgis-developerBlocked

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.osgeo.org/pipermail/qgis-developer/attachments/20240305/887c50a5/attachment-0001.htm>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: image001.png
Type: image/png
Size: 22696 bytes
Desc: image001.png
URL: <http://lists.osgeo.org/pipermail/qgis-developer/attachments/20240305/887c50a5/attachment-0001.png>


More information about the QGIS-Developer mailing list