Puede resultarte útil revisar el código generado por el plugin Plugin Builder, especialmente el método add_action() que genera, el cual es lo que engancha los iconos del plugin en barras de herramientas y menús.
Este fragmento parece prometedor...
if add_to_toolbar:
self.toolbar.addAction(action)
Ya descubriste cómo obtener la acción
existente (un objeto QAction). Ahora solo necesitas el fragmento para obtener la barra de herramientas a la que deseas agregar el icono.
Al ver la API de qgisInterface, parece que ya existe un método que te permite crear una barra de herramientas...
myaction = qgis.utils.iface.mapNavToolToolBar().actions()[0]
mytoolbar = qgis.utils.iface.addToolBar("helloworld")
mytoolbar.addAction(myaction)
Acabo de probar eso en la consola y funciona. (Si no aparece, haz clic derecho en el fondo de la barra de herramientas y asegúrate de que 'helloworld' esté marcado)
EDICIÓN
Acabo de darme cuenta de que deseas unirte a una barra de herramientas existente, la cual no has creado tú mismo.
QgisInterface
extiende QObject
, que tiene un método findChild(type,name)
. Sin embargo, ejecutar esto desde la consola devuelve una lista vacía.
print qgis.utils.iface.findChildren(PyQt4.QtGui.QToolBar,u'helloworld')
>>> []
Esperemos que alguien con más conocimientos de Qt pueda responder a esto. Creo que puede haber un problema al leer datos como este a través de hilos :/