このページでは

QWaylandCompositor Class

QWaylandCompositor クラスは、Wayland ディスプレイサーバーを管理します。詳細...

ヘッダー: #include <QWaylandCompositor>
CMake: find_package(Qt6 REQUIRED COMPONENTS WaylandCompositor)
target_link_libraries(mytarget PRIVATE Qt6::WaylandCompositor)
qmake: QT += waylandcompositor
QML内では: WaylandCompositor
継承元: QWaylandObject

プロパティ

パブリック関数

QWaylandCompositor(QObject *parent = nullptr)
virtual ~QWaylandCompositor() override
void addSocketDescriptor(int fd)
QVector<QWaylandCompositor::ShmFormat> additionalShmFormats() const
virtual void create()
QWaylandOutput *defaultOutput() const
QWaylandSeat *defaultSeat() const
void destroyClient(QWaylandClient *client)
void destroyClientForSurface(QWaylandSurface *surface)
virtual void grabSurface(QWaylandSurfaceGrabber *grabber, const QWaylandBufferRef &buffer)
bool isCreated() const
QWaylandOutput *outputFor(QWindow *window) const
bool retainedSelectionEnabled() const
QWaylandSeat *seatFor(QInputEvent *inputEvent)
void setAdditionalShmFormats(const QVector<QWaylandCompositor::ShmFormat> &additionalShmFormats)
void setDefaultOutput(QWaylandOutput *output)
void setRetainedSelectionEnabled(bool enabled)
void setSocketName(const QByteArray &name)
void setUseHardwareIntegrationExtension(bool use)
QByteArray socketName() const
bool useHardwareIntegrationExtension() const

シグナル

void additionalShmFormatsChanged()
void createdChanged()
void defaultOutputChanged()
void defaultSeatChanged(QWaylandSeat *newDevice, QWaylandSeat *oldDevice)
void retainedSelectionChanged(bool retainedSelection)
void socketNameChanged(const QByteArray &socketName)
void surfaceCreated(QWaylandSurface *surface)
void surfaceRequested(QWaylandClient *client, uint id, int version)
void useHardwareIntegrationExtensionChanged()

詳細な説明

QWaylandCompositor は、クライアントへの接続に加え、さまざまなoutputs およびseats も管理します。

通常、コンポジターアプリケーションは 1 つのWaylandCompositor インスタンスを持ち、そのインスタンスは子として複数の出力を持つことができます。

プロパティのドキュメント

[since 6.0] additionalShmFormats : QVector<ShmFormat>

このプロパティには、コンポジターがサポートしていると告知している追加の wl_shm フォーマットのリストが格納されます。

デフォルトでは、必須の ShmFormat_ARGB8888 および ShmFormat_XRGB8888 のみがリストに追加され、このリストは空になります。

このプロパティは、コンポジターが `created` になる前に設定する必要があります。それ以降の変更は反映されません。

この列挙型は Qt 6.0 で導入されました。

アクセス関数:

QVector<QWaylandCompositor::ShmFormat> additionalShmFormats() const
void setAdditionalShmFormats(const QVector<QWaylandCompositor::ShmFormat> &additionalShmFormats)

Notifier シグナル:

void additionalShmFormatsChanged()

[read-only] created : bool

QWaylandCompositor が初期化されている場合、このプロパティは true となり、そうでない場合は false となります。

アクセス関数:

bool isCreated() const

Notifierシグナル:

void createdChanged()

defaultOutput : QWaylandOutput*

このプロパティには、QWaylandCompositor に追加された出力リストの先頭にある項目が格納されます。出力が追加されていない場合はnullとなります。

新しいデフォルトの出力を設定すると、それが出力リストの先頭に追加され、新しいデフォルトとなりますが、以前のデフォルトはリストから削除されません。新しいデフォルトの出力がすでに出力リストに含まれていた場合は、リストの先頭に移動されます。

アクセス関数:

QWaylandOutput *defaultOutput() const
void setDefaultOutput(QWaylandOutput *output)

通知シグナル:

void defaultOutputChanged()

[read-only] defaultSeat : QWaylandSeat*

このプロパティには、このQWaylandCompositor のデフォルトの座席が格納されています。

アクセス機能:

QWaylandSeat *defaultSeat() const

通知信号:

void defaultSeatChanged(QWaylandSeat *newDevice, QWaylandSeat *oldDevice)

retainedSelection : bool

このプロパティは、コンポジターがクリップボードの選択データのコピーを保持するかどうかを制御します。true の場合、コンポジターは所有クライアントからのすべてのクリップボードデータを積極的に読み取り、キャッシュします。これにより、パフォーマンス上のオーバーヘッドが発生します。デフォルトはfalse です。

アクセス関数:

bool retainedSelectionEnabled() const
void setRetainedSelectionEnabled(bool enabled)

通知シグナル:

void retainedSelectionChanged(bool retainedSelection)

QWaylandCompositor ::retainedSelectionReceived() およびQWaylandSurface::updateSelection()も参照してください 。

socketName : QByteArray

このプロパティには、QWaylandCompositor がクライアントと通信するために使用するソケット名が格納されます。これは、QWaylandCompositor がcreated となる前に設定する必要があります。

socketName が空の場合(デフォルト)、代わりに--wayland-socket-name の start 引数の内容が使用されます。この引数が設定されていない場合、コンポジターはソケット名を検索しようとしますが、デフォルトではwayland-0 となります。

アクセス関数:

QByteArray socketName() const
void setSocketName(const QByteArray &name)

Notifierシグナル:

void socketNameChanged(const QByteArray &socketName)

useHardwareIntegrationExtension : bool

このプロパティは、このQWaylandCompositor に対してハードウェア統合拡張機能を有効にするかどうかを指定します。

このプロパティは、コンポジターがcreated される前に設定する必要があります。

アクセス関数:

bool useHardwareIntegrationExtension() const
void setUseHardwareIntegrationExtension(bool use)

通知シグナル:

void useHardwareIntegrationExtensionChanged()

メンバ関数のドキュメント

QWaylandCompositor::QWaylandCompositor(QObject *parent = nullptr)

指定されたparent を使用して、QWaylandCompositorを構築します。

[override virtual noexcept] QWaylandCompositor::~QWaylandCompositor()

を破壊するQWaylandCompositor

[invokable] void QWaylandCompositor::addSocketDescriptor(int fd)

ファイル記述子fd でクライアントの接続を待機します。このファイル記述子は、すでにバインドされ、リスニング状態にあるサーバーソケットを指しています。

このメソッドはファイル記述子の所有権を取得しません。必要に応じて明示的に閉じる必要があります。

注:この メソッドは 、libwayland 1.10.0 以降でのみ利用可能です。それより以前の libwayland ランタイムに対してビルドされた場合、このメソッドはノーオペレーション(noop)となります。

注:この関数は 、メタオブジェクトシステムを介して、および QML から呼び出すことができます。Q_INVOKABLE を参照してください。

[virtual] void QWaylandCompositor::create()

QWaylandCompositor を初期化します。サブクラスでこの関数をオーバーライドする場合は、必ず基底クラスの実装を呼び出してください。

[invokable] void QWaylandCompositor::destroyClient(QWaylandClient *client)

client を破棄します。

注:この関数は 、メタオブジェクトシステムやQMLから呼び出すことができます。Q_INVOKABLE を参照してください。

[invokable] void QWaylandCompositor::destroyClientForSurface(QWaylandSurface *surface)

surface のクライアントを破棄します。

注:この関数は 、メタオブジェクトシステムおよびQMLから呼び出すことができます。Q_INVOKABLE を参照してください。

[virtual] void QWaylandCompositor::grabSurface(QWaylandSurfaceGrabber *grabber, const QWaylandBufferRef &buffer)

指定されたbuffer からサーフェスのコンテンツを取得します。デフォルトの実装では、動作させるためにOpenGLコンテキストが現在のスレッドにバインドされている必要があります。これが不可能な場合は、コンポジターのサブクラスでこの関数を再実装し、カスタムロジックを実装してください。 デフォルトの実装では、共有メモリと OpenGL バッファのみを取得します。より多くのバッファタイプを処理するには、コンポジターのサブクラスでこの関数を再実装してください。

注: この関数を手動で呼び出すのではなく、QWaylandSurfaceGrabber (grabber) を使用してください 。

[invokable] QWaylandOutput *QWaylandCompositor::outputFor(QWindow *window) const

指定されたwindow に接続されているQWaylandOutput を返します。

注:この関数は 、メタオブジェクトシステムを介して、またはQMLから呼び出すことができます。Q_INVOKABLE を参照してください。

QWaylandSeat *QWaylandCompositor::seatFor(QInputEvent *inputEvent)

指定された入力イベントinputEvent に対応するシートを選択します。現在、Qtでは1つのシートのみをサポートしています。

[signal] void QWaylandCompositor::surfaceCreated(QWaylandSurface *surface)

このシグナルは、新しいQWaylandSurface インスタンスsurface が作成されたときに発生します。

[signal] void QWaylandCompositor::surfaceRequested(QWaylandClient *client, uint id, int version)

このシグナルは、client がID「id 」を持つサーフェスを作成した際に発火します。また、インターフェースversion も利用可能です。

このシグナルに接続するスロットは、そのスロットのスコープ内でQWaylandSurface インスタンスを作成および初期化することができます。そうでない場合は、デフォルトのサーフェスが作成されます。

このシグナルへの接続は、Qt::DirectConnection 接続タイプでなければなりません。

© 2026 The Qt Company Ltd. Documentation contributions included herein are the copyrights of their respective owners. The documentation provided herein is licensed under the terms of the GNU Free Documentation License version 1.3 as published by the Free Software Foundation. Qt and respective logos are trademarks of The Qt Company Ltd. in Finland and/or other countries worldwide. All other trademarks are property of their respective owners.