QTabletEvent Class
QTabletEvent クラスには、タブレットイベントを表すパラメータが含まれています。詳細...
| ヘッダー: | #include <QTabletEvent> |
| CMake: | find_package(Qt6 REQUIRED COMPONENTS Gui) target_link_libraries(mytarget PRIVATE Qt6::Gui) |
| qmake: | QT += gui |
| 継承元: | QSinglePointEvent |
- 継承されたメンバーを含む、すべてのメンバーの一覧
- 非推奨のメンバ
- QTabletEvent はイベントクラスの一部です。
パブリック関数
| QTabletEvent(QEvent::Type type, const QPointingDevice *dev, const QPointF &pos, const QPointF &globalPos, qreal pressure, float xTilt, float yTilt, float tangentialPressure, qreal rotation, float z, Qt::KeyboardModifiers keyState, Qt::MouseButton button, Qt::MouseButtons buttons) | |
| qreal | pressure() const |
| qreal | rotation() const |
| qreal | tangentialPressure() const |
| qreal | xTilt() const |
| qreal | yTilt() const |
| qreal | z() const |
プロテクトされた関数
| QTabletEvent(QTabletEvent &&) | |
| QTabletEvent & | operator=(QTabletEvent &&) |
| QTabletEvent & | operator=(const QTabletEvent &other) |
詳細な説明
タブレットイベントは、Wacom タブレットやその他のさまざまなブランドのタブレット周辺機器、および一部のタブレット型コンピュータに付属する電磁式スタイラスデバイスから生成されます。(これは、タッチスクリーン上でパッシブスタイラスを使用した場合であっても、タッチスクリーンが生成する `QTouchEvent ` とは異なります。
タブレットイベントはマウスイベントと似ています。たとえば、x()、y()、pos()、globalX()、globalY()、globalPos() といったアクセサはカーソルの位置を提供し、buttons() を押すと、どのキーが押されているかを確認できます(タブレットの表面にスタイラスの先端を押し当てることは、マウスの左ボタンを押すことと同じです)。 しかし、タブレットイベントには、タブレットデバイスドライバが提供する追加情報も含まれています。例えば、より高解像度の座標(globalPosF())を使用してサブピクセルレンダリングを行ったり、タブレット表面に対するツールの傾斜角度(pressure())に基づいて色の明るさを調整したり、使用中のツールの種類に応じて異なるブラシを使用したり(deviceType())、 ツールのタブレット表面に対するX軸およびY軸の傾きに応じて何らかの方法でブラシの形状を調整したり(xTilt() およびyTilt())、ユーザーが両端式スタイラスの反対側の端に切り替えた場合にブラシの代わりに仮想消しゴムを使用したりすることもできます(pointerType())。
すべてのイベントには、受信側がそのイベントを受け入れるかどうかを示す「受諾フラグ」が含まれています。タブレットイベントを処理する場合は、QTabletEvent::accept() を呼び出す必要があります。そうしないと、そのイベントは親ウィジェットに送信されます。ただし、TabletEnterProximity および TabletLeaveProximity イベントは例外です。これらはQApplication へのみ送信され、受諾の有無はチェックされません。
QWidget::setEnabled() 関数を使用すると、ウィジェットに対するマウス、タブレット、およびキーボードのイベントを有効または無効にできます。
イベントハンドラ `QWidget::tabletEvent()` は、`TabletPress`、`TabletRelease`、および `TabletMove` イベントを受け取ります。Qt はまずタブレットイベントを送信し、どのウィジェットもそれを受け入れない場合は、マウスイベントを送信します。 これにより、タブレット向けに設計されていないアプリケーションのユーザーでも、タブレットをマウスのように使用できるようになります。ただし、高解像度の描画アプリケーションでは、タブレットイベントを処理する必要があります。これは、タブレットイベントの方が発生頻度が高く、スムーズで正確な描画に役立つためです。タブレットイベントが拒否された場合、効率化のために合成マウスイベントが圧縮されることがあります。
なお、スタイラスがタブレットの上を浮いた状態でスタイラスのボタンを押すと、一部の種類のタブレットではボタン押下が検出されますが、他の種類のタブレットでは、同時にスタイラスのボタンが押されたことを認識させるために、スタイラスをタブレットの表面に押し付ける必要がある場合があります。
X11 ユーザーへの注意事項
xorg.conf でタブレットが Wacom ドライバを使用するように設定されている場合、スタイラス、消しゴム、および(オプションで)カーソルとタッチパッド用に、個別の XInput 「デバイス」が存在することになります。 Qt はこれらの名前でそれらを認識します。一方、タブレットが evdev ドライバを使用するように設定されている場合、デバイスは 1 つしか存在せず、アプリケーションはスタイラスと消しゴムを区別できない可能性があります。
Windows ユーザー向けの注意事項
現在、タブレットをサポートするには、DLLwintab32.dll を提供する WACOM Windows ドライバがインストールされている必要があります。これは、pentablet_5.3.5-3.exe などの古いパッケージに含まれています。
メンバー関数のドキュメント
QTabletEvent::QTabletEvent(QEvent::Type type, const QPointingDevice *dev, const QPointF &pos, const QPointF &globalPos, qreal pressure, float xTilt, float yTilt, float tangentialPressure, qreal rotation, float z, Qt::KeyboardModifiers keyState, Qt::MouseButton button, Qt::MouseButtons buttons)
指定されたtype のタブレットイベントを生成します。
pos パラメータは、ウィジェット内のどこでイベントが発生したかを示し、globalPos は絶対座標での対応する位置を表します。
pressure は、デバイスに加わった圧力dev を表します。
xTilt およびyTilt は、それぞれ x 軸および y 軸に対するデバイスの傾き角度を表します。
keyState は、どのキーボード修飾キーが押されているかを指定します(例:Ctrl )。
z パラメータは、タブレット上のデバイスの Z 座標を表します。これは通常、4D マウスのホイールによって指定されます。デバイスが Z 軸をサポートしていない場合(つまり、QPointingDevice::capabilities() にZPosition が含まれていない場合)、ここに0 を指定してください。
tangentialPressure パラメータは、エアブラシからの接線方向の圧力(サムホイール)値を指定します。デバイスが接線方向の圧力をサポートしていない場合(つまり、QPointingDevice::capabilities() にTangentialPressure が含まれていない場合)、ここでは0 を渡してください。
rotation デバイスの回転角度(度単位)を返します。4Dマウス、Wacom Art Pen、およびApple Pencilは回転に対応しています。デバイスが回転に対応していない場合(つまり、QPointingDevice::capabilities()にRotation が含まれていない場合)、ここに0 を渡してください。
イベントを引き起こしたbutton は、Qt::MouseButton 列挙型の値として指定されます。イベントtype がTabletPress またはTabletRelease でない場合、このイベントに対応するボタンはQt::NoButton です。
buttons は、イベント発生時点におけるすべてのボタンの状態です。
関連項目: pos()、globalPos()、device()、pressure()、xTilt()、yTilt()、uniqueId()、rotation()、tangentialPressure()、およびz()。
[protected delete] QTabletEvent::QTabletEvent(QTabletEvent &&)
QTabletEvent のインスタンスをMoveコンストラクタで生成します。この関数は削除されています。
qreal QTabletEvent::pressure() const
デバイスの筆圧値を返します。0.0 はスタイラスがタブレット上にないことを示し、1.0 はスタイラスの最大筆圧を示します。
tangentialPressure()も参照してください 。
qreal QTabletEvent::rotation() const
現在のツールの回転角度を度単位で返します。0 はスタイラスの先端がタブレットの上方を向いていることを意味し、正の値は右向き、負の値は左向きであることを意味します。 この値は、4Dマウスや回転機能付きのスタイラス(Wacom Art Pen や Apple Pencil など)によって取得できます。デバイスが回転に対応していない場合、この値は常に 0.0 になります。
qreal QTabletEvent::tangentialPressure() const
デバイスの接線方向の圧力を返します。これは通常、エアブラシツールのフィンガーホイールによって設定されます。範囲は-1.0から1.0です。0.0は中立位置を示します。 現在のエアブラシは、中立位置から正の方向にしか動かせません。デバイスが接線方向の圧力に対応していない場合、この値は常に 0.0 になります。
注:この 値は 単精度浮動小数点数として格納されます。
関連項目: pressure()。
qreal QTabletEvent::xTilt() const
デバイス(ペンなど)とx軸方向の垂直線との間の角度を返します。正の値は、タブレットの物理的な右方向を指します。角度の範囲は-60度から+60度です。

注:この 値は 単精度浮動小数点数として格納されます。
関連項目: yTilt()。
qreal QTabletEvent::yTilt() const
デバイス(ペンなど)と、y軸方向の垂直線との間の角度を返します。正の値はタブレットの下方向を示します。角度の範囲は-60度から+60度です。
注:この 値は 単精度浮動小数点数として格納されます。
関連項目: xTilt()。
qreal QTabletEvent::z() const
デバイスのZ軸位置を返します。通常、これは4Dマウス上のホイールによって表されます。デバイスがZ軸に対応していない場合、この値は常に0になります。これは圧力とは異なります。
注:この 値は 単精度浮動小数点数として格納されます。
関連項目: pressure()。
[protected delete] QTabletEvent &QTabletEvent::operator=(QTabletEvent &&)
other をこのQTabletEvent インスタンスに割り当てます。この関数は削除されます。
[noexcept protected default] QTabletEvent &QTabletEvent::operator=(const QTabletEvent &other)
other をこのQTabletEvent インスタンスにコピーして割り当てます。
© 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.