Qtの基礎 - クリップボード
概要
Qtでは、QClipboard
クラスを使用してクリップボード操作を行う。
このクラスは、システムのクリップボードとアプリケーション間のデータ転送を管理するものである。
クリップボードの基本的な機能は、データのコピー、切り取り、貼り付けである。
QClipboard
クラスは、テキスト、画像、カスタムデータ型等、様々な形式のデータをサポートしている。
データの設定には、QClipboard::setText
メソッドやQClipboard::setImage
メソッド等を使用する。
一方、データの取得には、QClipboard::text
メソッドやQClipboard::image
等のメソッドを使用する。
Qtでは、複数のクリップボードモードをサポートしている。
主なものとしては、通常のクリップボード、選択クリップボード (主にX11システムで使用)、検索クリップボードがある。
クリップボードの変更を監視する場合は、QClipboard::dataChanged
シグナルに接続することにより、
クリップボードの内容が変更された場合に通知を受け取ることができる。
また、Qtでは、MIME型を使用して複雑なデータ構造をクリップボードに保存することも可能である。
これにより、アプリケーション間で豊富なデータ交換が可能になる。
クリップボードの操作は非同期で行われるため、大量のデータを扱う場合はパフォーマンスに注意が必要である。
必要に応じて、バックグラウンドスレッドでの処理を検討するとよい。
クリップボードを使用する
クリップボードをコントロールするには、以下のように記述する。
クリップボードに値をコピーする場合、setText
メソッド、setImage
メソッド、setPixmap
メソッド、setMimeData
メソッドを使用する。
取得する場合、text
メソッド、Image
メソッド、pixmap
メソッド、mimeData
メソッドを使用する。
// クリップボードのインスタンスを取得する
auto clipboad = QApplication::clipboard();
// テキストをクリップボードにコピーする
clipboad->setText(str);