Qtの基礎 - クリップボード

提供:MochiuWiki : SUSE, EC, PCB
2024年9月7日 (土) 04:31時点におけるWiki (トーク | 投稿記録)による版 (→‎概要)
ナビゲーションに移動 検索に移動

概要

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);