トップへ戻る Cdrom || Color || Cursors || Display || Draw || Event || Examples || Font || Gfxdraw || Image || Joystick || Key || Locals || Mask || Mixer || Mouse || Movie || Music || Overlay || Pixelarray || Pygame || Rect || Scrap || Sndarray || Sprite || Surface || Surfarray || Tests || Time || Transform
pygame.scrap
    クリップボードを使用するためのpygameモジュールです。

      pygame.scrap.init - scrapモジュールを初期化します。
      pygame.scrap.get - クリップボードから指定した形式のデータを取得します。
      pygame.scrap.get_types - クリップボードに保存されたデータ形式の一覧を取得します。
      pygame.scrap.put - クリップボードにデータを保存します。
      pygame.scrap.contains - 指定した形式のデータがクリップボードで使用できるかを調べます。
      pygame.scrap.lost - このアプリケーションがクリップボード機能を排他制御しているか調べます。
      pygame.scrap.set_mode - クリップボードのアクセスモードを設定します。

    この命令は試験的に実装されているものです!:pygameのバージョンが上がると、この命令は仕様が変更されたりなくなったりする可能性があります。この項目にある命令を使用してプログラムを書くと、次期pygameバージョンでは正常に動かなくなることもあります。

    このコピー・ペースト命令では、クリップボートにコピーしたりクリップボード内のデータを貼り付けたりすることができます。pygameで作られたアプリケーション同士だけでなく、他のアプリケーションとの間でもコピー・ペーストができます。この命令では下記のようないくつかの既定データ形式が定義されています。

      SCRAP_PPM
      SCRAP_PBM
      SCRAP_BMP
      SCRAP_TEXT
    

    これらを設定することで、pygameに既定に定義されているデータ形式をクリップボードで使用できるようになります。SCRAP_PPMSCRAP_PBMSCRAP_BMPは他のアプリケーションに画像データをコピーするのに適しており、一方 SCRAP_TEXTは文字のコピーに適しています。

    SCRAP_*の各定義を設定すると、下記のMIMEタイプを参照して、指定したデータ形式を処理するための既定オペレーティングシステムの設定も行われます。:

      SCRAP_TEXT text/plain    # プレーンテキスト
      SCRAP_PBM  image/pbm     # PBMでエンコードされた画像ファイル
      SCRAP_PPM  image/ppm     # PPMでエンコードされた画像ファイル
      SCRAP_BMP  image/bmp     # BMPでエンコードされた画像ファイル
    

    使用環境にもよりますが、クリップボードにコピーしたデータが保存されている場合は、処理するデータ形式が自動的に追加登録されることもあります。これは他のアプリケーションとのコピー・ペースト連携を正常に行うためです。 pygame.scrapモジュールの命令に文字列をコピーすると、後で挙げる文字コードを使用することができます。

    Windows環境では、処理するデータ形式が自動的に追加登録されます。各データ形式はpygame内で下記のように定義されています。:

      text/plain;charset=utf-8 # UTF-8 でエンコードされた文字
      audio/wav                # WAVでエンコードされた音声ファイル
      image/tiff               # TIFFでエンコードされた画像ファイル
    

    X11環境では、処理するデータ形式が自動的に追加登録されます。各データ形式はpygame内で下記のように定義されています。:

      UTF8_STRING               # UTF-8 でエンコードされた文字
      text/plain;charset=utf-8  # UTF-8 でエンコードされた文字
      COMPOUND_TEXT             # コンパウンドテキスト
    

    先ほど述べたようにクリップボードには独自のデータ形式を定義して使用することもできますが、その場合他のアプリケーションとコピー・ペースト連携ができない場合もあります。つまり、下記のような操作でクリップボードにデータをコピーしたとします。

      pygame.scrap.put ("own_data", data)
    

    そうすると、このコピーデータは"own_data"というデータ形式定義を持つアプリケーションでしか使用することができません。

    この命令はpygameのバージョン1.8か新しく実装されました。今ところWindows環境と X11環境、Mac OS X環境でしか動作しません。Mac OSX環境では、今のところ文字のコピー・ペーストしか実行できません。 - 他のデータに関しては次期バージョンでサポートする予定です。



    pygame.scrap.init
      scrapモジュールを初期化します。
      scrap.init () -> None

      scrapモジュールを初期化し、初期化に失敗した場合は例外を発生させます。 このモジュールを使用するにはdisplay surfaceの設定が行われている必要があるので、事前に必ずpygame.display.set_mode命令を実行するようにしてください。



    pygame.scrap.get
      クリップボードから指定した形式のデータを取得します。
      scrap.get (type) -> string

      クリップボードから、指定した形式のデータを戻り値として返します。データは文字列として取得されるので、別途変換処理が必要な場合もあります。もし指定した形式のデータがない場合は、None値が戻り値として返ります。

        text = pygame.scrap.get (SCRAP_TEXT)
        if text:
            # 取得したデータを使った処理を記述して行ってください。
        else:
            print "There does not seem to be text in the clipboard."
      


    pygame.scrap.get_types
      クリップボードに保存されたデータ形式の一覧を取得します。
      scrap.get_types () -> list

      クリップボードに保存されたデータのデータ形式一覧を、文字列の識別子として取得します。取得された各識別子は、 scrap.get()命令でクリップボードから特定の形式のデータを取り出す時に使用します。クリップボードにデータが保存されてない場合、空のリストが戻り値として返ります。

        types = pygame.scrap.get_types ()
        for t in types:
            if "text" in t:
                # クリップボードに"テキスト"形式のデータが保存されています。
                # テキスト形式なのでprint命令で使用できます。
                print pygame.scrap.get (t)
      


    pygame.scrap.put
      クリップボードにデータを保存します。
      scrap.put(type, data) -> None

      クリップボードに指定した形式のデータを保存します。 The data must be a string buffer. type引数には、クリップボードに保存するデータ形式を文字列型識別子で設定します。文字列型識別子として設定できるのは、既定で定義されているSCRAP_PBMSCRAP_PPMSCRAP_BMPSCRAP_TEXTに加えてあなたが独自に定義した識別子です。

      クリップボードのデータが保存できない場合、例外が発生します。

        fp = open ("example.bmp", "rb")
        pygame.scrap.put (SCRAP_BMP, fp.read ())
        fp.close ()
        # これで他のアプリケーションでもクリップボードに保存された画像データを使用できます。
        pygame.scrap.put (SCRAP_TEXT, "A text to copy")
        pygame.scrap.put ("Plain text", "A text to copy")
      


    pygame.scrap.contains
      指定した形式のデータがクリップボードで使用できるかを調べます。
      scrap.contains (type) -> bool

      指定した形式のデータがクリップボードで使用できる場合はTrueが戻り値として返り、そうでない場合はFalseが戻り値として返ります。

        if pygame.scrap.contains (SCRAP_TEXT):
            print "テキスト形式のデータはクリップボードで使用できます。"
        if pygame.scrap.contains ("own_data_type"):
            print "この形式のデータはクリップボードで使用できます。"
      


    pygame.scrap.lost
      このアプリケーションがクリップボード機能を排他制御しているか調べます。
      scrap.lost() -> bool

      このpygameアプリケーションがクリップボード機能を排他制御している場合はFalseが戻り値として返り、そうでない場合はTrueが戻り値として返ります。

        if pygame.scrap.lost ():
           print "このアプリケーションで保存しているデータはありません。クリップボードは別のアプリケーションが排他制御しています。"
      

      ※原文では「排他制御している場合はTrueが戻り値として返り、そうでない場合はFalseが戻り値として返ります。」と記載されていますが、誤りの可能性があるので修正して訳し直しています。



    pygame.scrap.set_mode
      クリップボードのアクセスモードを設定します。
      scrap.set_mode(mode) -> None

      クリップボードのアクセスモードを設定します。これはX11環境のためだけに用意された命令で、mouse selectionsモード (SCRAP_SELECTION) と the clipboard モード(SCRAP_CLIPBOARD) が使用できます。X11以外の環境ではSCRAP_SELECTIONモードを設定しても特に何も起こりません。

      SCRAP_CLIPBOARDSCRAP_SELECTION以外の値を引数に設定すると、ValueErrorの例外が発生します。



トップへ戻る Cdrom || Color || Cursors || Display || Draw || Event || Examples || Font || Gfxdraw || Image || Joystick || Key || Locals || Mask || Mixer || Mouse || Movie || Music || Overlay || Pixelarray || Pygame || Rect || Scrap || Sndarray || Sprite || Surface || Surfarray || Tests || Time || Transform