6 votos

¿Acceso al portapapeles interno de QGIS en Python?

¿Cómo se puede acceder al portapapeles interno de QGIS (definido en C++ qgsclipboard ) mediante Python/PyQGIS?

He intentado QgsApplication.clipboard() y QApplication.clipboard , que devuelven un PyQt5 QClipboard en lugar de un objeto QgsClipboard .

Me encantaría hacer uso de las funciones copiadas en el portapapeles en formato nativo (a través del copyOf() método de QgsClipboard ) pero QClipboard parece tener sólo un text() representación.

1 votos

Creo que es un error, ya que este método debería devolver un QgsClipboard github.com/qgis/QGIS/blob/ tal vez no tiene una envoltura para python esta función? estoy pensando en voz alta

0 votos

Fran, parece que es peor que eso. Navegando por el C++ Documentos de la API y el Enlaces de Python El QgsApplication no menciona el portapapeles y QgsClipboard no aparece como una clase en absoluto. Así que es posible que no se haya previsto el acceso para los plugins o la consola....esperando una alternativa mejor que tener que convertir el text() que puede ser GeoJSON o WKT según la configuración.

3voto

Mat Puntos 196

En teoría deberías poder obtener los datos a través de la función mimeData() asociada al QClipboard

import PyQt5.QtCore
QgsApplication.clipboard().mimeData().retrieveData('application/octet-stream', QVariant.ByteArray)

Yo obtengo el siguiente error con eso ejecutando directamente desde la consola. Si lo que buscas es un binario (un ByteArray) puede que tengas que experimentar para ver qué tipo de MIME necesitas proporcionar.

RuntimeError: no hay acceso a funciones o señales protegidas para objetos no creados desde Python

¿pero podrías tener más suerte si lo ejecutas dentro de un plugin?


Parece que hay una envoltura SIP involucrada, una de las funciones (retrievedata) es de visibilidad protegida por lo que podría no ser posible acceder a esto a través de Python. Ver esta página

0 votos

Una gran idea. Sin embargo, lamentablemente QgsApplication.clipboard().mimeData().formats() parece implicar que sólo es accesible como texto plano, que es GeoJSON o WKT dependiendo de la configuración de Configuración -> Opciones -> Fuentes de datos -> Copiar características como...

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