Módulo de pygame que ofrece soporte para el portapapeles (clipboard).
El módulo scrap
se utiliza para obtener o colocar cosas en el
portapapeles. De forma que pueda copiar y pegar datos entre pygame
y otro tipo de aplicaciones. Este módulo define algunos tipos
de datos básicos:
Estos tipos de datos básicos se pueden colorar en el portapapeles y permiten usar tipos de datos propios. SCRAP_PPM, SCRAP_PBM y SCRAP_BMP son adecuados para compartir datos de superficies gráficas con otras aplicaciones, mientra que SCRAP_TEXT es indicado para intercambiar texto plano.
Los tipos de datos SCRAP_* hacen referencia a los siguientes tipos MIME, y pygame los registra correctamente como los tipos de datos por defecto del sistema operativo:
Tipo pygame | Tipo MIME | Datos |
---|---|---|
SCRAP_TEXT | text/plain | para texto plano |
SCRAP_PBM | image/pbm | para datos de imagen PBM |
SCRAP_PPM | image/ppm | para datos de imagen PPM |
SCRAP_BMP | image/bmp | para datos de imagen BMP |
Dependiendo de la plataforma, cuando los datos se colocan dentro del
portapapeles se registran algunos tipos de datos adicionales de
forma automática para garantizar un comportamiento de intercambio
consistente
con otras aplicaciones. Los siguientes tipos indicados en la lista
se puede usar como cadenas para enviarse a las respectivas funciones
del módulo pygame.scrap
.
En las plataformas Windows se soportan tipos de datos adicionales de forma automática y se resuelven sus definiciones internas:
En las plataformas X11 se soportan los siguientes tipos de datos adicionales:
Como se ha comentado anteriormente, usted puede definir sus propios tipos de datos para el portapapeles, de todas formas estos podrían ser inutilizables por otras aplicaciones. Así, la información que se envía al portapapeles usando:
pygame.scrap.put ("own_data", data)
sólo podría usarse por aplicaciones que consulten el portapapeles buscando el tipo de datos “own_data”.
Es una funcionalidad nueva en pygame 1.8, solo funciona en Window, X11 y Mac OS X. En Mac OS X solo funciona el intercambio de texto, los otros tipos de datos estarán disponibles en la siguiente versión.
Inicializa el módulo scrap.
scrap.init () -> None
Intenta inicializar el módulo scrap
y lanza un excepción si
falla. Tenga en cuenta que este módulo necesita tener una superficie
de visualización, por lo tanto debe asegurarse de haber adquirido
una anteriormente usando la función pygame.display.set_mode()
'.
Obtiene los datos para el tipo indicado del portapapeles.
scrap.get (type) -> string
Retorna los datos para el tipo de dato especificado desde el
portapapeles. Los datos se retornan como cadenas y podrían
necesitar futuros arreglos. Se retornará None
si no hay
datos del tipo de dato indicado.
text = pygame.scrap.get (SCRAP_TEXT) if text: # Hacer cosas con el texto else: print "Parace que no hay texto en el portapapeles."
Obtiene una lista de los tipos de portapapeles disponibles.
scrap.get_types () -> list
Obtiene una lista de cadenas con los identificadores de los
tipos de portapapeles disponibles. Cada identificador se puede
usar en el método scrap.get()
para obtener el contenido
del portapapeles en el tipo específico. Se retornará una
lista vacía si no hay datos en el portapapeles.
types = pygame.scrap.get_types () for t in types: if "text" in t: # Hay cierto contenido con la palabra "text", posiblemente # sea texto, por lo tanto se impimirá: print pygame.scrap.get (t)
Coloca datos dentro del portapapeles.
scrap.put(type, data) -> None
Coloca información para un tipo de dato específico en el portapapeles.
Los datos deben estar en formato de cadena. El argumento
type
debe ser una cadena que identifica el tipo de dato que
se colocará en el portapapeles. Este argumento puede ser uno
de los valores nativos como SCRAP_PBM
, SCRAP_PPM
, SCRAP_BMP
, SCRAP_TEXT
o un identificador de cadena de su tipo de dato
personalizado.
Este método lanza una excepción si el contenido indicado no se puede colocar en el portapapeles.
Un ejemplo:
fp = open ("example.bmp", "rb") pygame.scrap.put (SCRAP_BMP, fp.read ()) fp.close () # Ahora puede obtener la información desde otras aplicaciones # usando el portapapeles. pygame.scrap.put (SCRAP_TEXT, "A text to copy") pygame.scrap.put ("Plain text", "A text to copy")
Consulta si un cierto tipo de dato se encuentra en el portapapeles.
scrap.contains (type) -> bool
Retorna True
si el tipo de dato que se ha enviado está
disponible en el portapapeles. En otro caso retornará False
.
if pygame.scrap.contains (SCRAP_TEXT): print "Hay texto en el portapapeles." if pygame.scrap.contains ("own_data_type"): print "Existe información personalizada en el portapapeles."
Consulta si el portapapeles está en dominio de la aplicación.
scrap.lost() -> bool
Retorna True
si el portapapeles está siendo utilizado por
otra aplicación.
if pygame.scrap.lost (): print "No hay contenido para mi, el portapapeles está siendo utilizado por alguien mas..."
Define el modo de acceso al portapapeles.
scrap.set_mode(mode) -> None
Define el modo de acceso al portapapeles. Este modo solo es de interés
para los entornos X11, donde están disponibles los modos de selección
por mouse (SRAP_SELECTION) y el portapapeles (SCRAP_CLIPBOARD). Solicitar
el modo SCRAP_SELECTION
en otros entornos no causará ninguna diferencia.
Se lanzará un excepción ValueError
si se envía un valor
diferente a SCRAP_CLIPBOARD
o SCRAP_SELECTION
.