5 votos

Hacer que los botones de QGIS y el botón de mi plugin se excluyan mutuamente

He añadido una barra de herramientas a la ventana principal de QGIS y he añadido algunos botones comprobables a la barra de herramientas.

¿Cómo puedo hacer que mis botones seleccionables desactiven los botones seleccionables de las barras de herramientas predeterminadas de QGIS? Es decir, cuando activo mi botón haciendo clic en él, quiero que se desactiven los botones por defecto de QGIS.

¿Hay alguna forma de obtener el QButtonGroup de la ventana principal de QGIS?

1 votos

Bienvenido a GIS:SE ¿Podrías incluir tu código para los posibles contestadores, por favor? Esto facilitaría su ayuda.

6voto

Elliott Maynard Puntos 11

Puede acceder a los botones (acciones) de la barra de herramientas de QGIS mediante el botón iface objeto ( docs aquí ). A partir de esas acciones puede crear un QActionGroup y añada su acción personalizada haciendo que todas las acciones sean mutuamente excluyentes.

El siguiente fragmento de código muestra cómo hacerlo, paso a paso. He puesto el fragmento de código en la sección initGui(self) de mi plugin de prueba.

# Make sure your action can be toggled 
self.action.setCheckable( True )

# Build an action list from QGIS navigation toolbar
actionList = self.iface.mapNavToolToolBar().actions()

# Add actions from QGIS attributes toolbar (handling QWidgetActions)
tmpActionList = self.iface.attributesToolBar().actions()        
for action in tmpActionList:
    if isinstance(action, QWidgetAction):
        actionList.extend( action.defaultWidget().actions() )
    else:
        actionList.append( action ) 
# ... add other toolbars' action lists...

# Build a group with actions from actionList and add your own action
group = QActionGroup( self.iface.mainWindow() )
group.setExclusive(True)
for action in actionList:
    group.addAction( action )
group.addAction( self.action )

Puede obtener un plugin de demostración mostrando este comportamiento desde aquí . En el archivo README tienes instrucciones de instalación y configuración.

Después de instalar el plugin de demostración, puedes notar que el botón de tu plugin desactiva los botones de QGIS y al revés.

Nota: Sólo he incluido acciones de las barras de herramientas de Navegación y Atributos QGIS. Puede que necesites añadir también otras acciones de la barra de herramientas QGIS. Todas las barras de herramientas QGIS que puedes obtener están expuestas en el archivo QgisInterface .

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X