QTabletEvent Class
QTabletEventクラスは、タブレットイベントを記述するパラメータを含んでいます。詳細...
Header: | #include <QTabletEvent> |
CMake: | find_package(Qt6 REQUIRED COMPONENTS Gui) target_link_libraries(mytarget PRIVATE Qt6::Gui) |
qmake: | QT += gui |
Inherits: | 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 |
詳細説明
タブレットイベントは、Wacomタブレットや他の様々なブランドのタブレット周辺機器、およびいくつかのタイプのタブレットコンピュータに含まれる電磁スタイラスデバイスから生成されます。(タッチスクリーン上で受動的なスタイラスが使用されている場合でも、タッチスクリーンが生成するQTouchEvent とは異なります)。
例えば、x()、y()、pos()、globalX()、globalY()、globalPos()アクセサはカーソル位置を提供し、どのbuttons()が押されたかを見ることができます(スタイラスの先端をタブレット表面に押し付けることは、マウスの左ボタンに相当します)。しかし、タブレット・イベントは、タブレット・デバイス・ドライバが提供する追加情報も通過させます;たとえば、より高い解像度の座標でサブピクセルレンダリングを行いたい場合 (globalPosF() )、タブレット表面に対するツールのpressure() に基づいて色の明るさを調整したい場合、使用中のツールの種類に応じて異なるブラシを使用したい場合 (deviceType() )などが考えられます、タブレット表面に対するツールのX軸とY軸の傾きに応じてブラシの形状を何らかの方法で調整する(xTilt()とyTilt()、ユーザーがダブルエンドのスタイラスのもう一方の端に切り替えた場合、ブラシの代わりに仮想消しゴムを使用する(pointerType()。
すべてのイベントには、受信者がそのイベントを望んでいるかどうかを示す accept フラグが含まれています。タブレット・イベントを処理する場合は、QTabletEvent::accept() を呼び出す必要があります。そうしないと、イベントは親ウィジェットに送信されます。例外は、TabletEnterProximity イベントと TabletLeaveProximity イベントです。これらはQApplication にのみ送信され、受理されたかどうかはチェックされません。
QWidget::setEnabled() 関数を使用して、ウィジェットのマウス、タブレット、キーボードイベントを有効または無効にできます。
イベントハンドラQWidget::tabletEvent() は、TabletPress、TabletRelease、TabletMove イベントを受信します。Qt は最初にタブレット・イベントを送信し、次にどのウィジェットでも受け入れられなかった場合、マウス・イベントを送信します。これにより、タブレット用に設計されていないアプリケーションでも、タブレットをマウスのように使うことができます。しかし、高解像度の描画アプリケーションは、タブレット・イベントを処理する必要があります。なぜなら、タブレット・イベントは高い頻度で発生する可能性があり、スムーズで正確な描画に役立つからです。タブレットイベントが拒否された場合、合成マウスイベントは効率化のために圧縮される可能性があります。
スタイラスがタブレットの上にあるときにスタイラスボタンを押すと、タブレットの種類によってはボタンが押されたことになります。
X11ユーザーへの注意事項
タブレットが Wacom ドライバを使うように xorg.conf で設定されている場合、スタイラス、消しゴム、カーソル、タッチパッド用に別々の XInput "デバイス "が存在します。Qtはこれらを名前で認識します。そうでなければ、タブレットがevdevドライバを使うように設定されている場合、デバイスは1つしかなく、アプリケーションはスタイラスと消しゴムを区別できないかもしれません。
Windowsユーザー向けの注意事項
タブレットのサポートには現在、wintab32.dll
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 と は、それぞれ x 軸と y 軸からのデバイスの傾きの度合いを指定します。yTilt
keyState は、どのキーボード修飾子が押されたかを指定します(例: )。Ctrl
z パラメータは、タブレット上のデバイスのZ座標を指定します。これは通常、4Dマウスのホイールによって指定されます。デバイスがZ軸をサポートしていない場合(つまり、QPointingDevice::capabilities() にZPosition
が含まれていない場合)、ここに0
を渡します。
tangentialPressure パラメータは、エアブラシの接線圧サムホイールの値を与えます。デバイスが接線圧をサポートしていない場合 (すなわちQPointingDevice::capabilities() にTangentialPressure
が含まれていない場合)、ここに0
を渡します。
rotation はデバイスの回転を度単位で指定します。4Dマウス、ワコムアートペン、アップルペンシルは回転をサポートしています。デバイスが回転をサポートしていない場合(すなわち、 () に が含まれていない場合)、 をここに渡します。QPointingDevice::capabilities Rotation
0
イベントの原因となったbutton は、Qt::MouseButton enum の値として与えられます。イベントtype がTabletPress またはTabletRelease でない場合、このイベントに適切なボタンはQt::NoButton です。
buttons は、イベント発生時のすべてのボタンの状態である。
pos()、globalPos()、device()、pressure()、xTilt()、yTilt()、uniqueId()、rotation()、tangentialPressure()、z()も参照のこと 。
qreal QTabletEvent::pressure() const
デバイスの筆圧を返します。0.0はスタイラスがタブレット上にないことを示し、1.0はスタイラスの最大筆圧を示します。
tangentialPressure()も参照してください 。
qreal QTabletEvent::rotation() const
現在のツールの回転を度単位で返します。ゼロはスタイラスの先端がタブレットの上部を向いていることを意味し、正の値は右に回転していることを意味し、負の値は左に回転していることを意味します。これは、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度の範囲です。
注: 値は単精度floatとして格納されます。
yTilt()も参照してください 。
qreal QTabletEvent::yTilt() const
デバイス(ペンなど)とy軸方向の垂直との間の角度を返します。正の値はタブレットの底に向かいます。角度は-60度から+60度の範囲内です。
注: 値は単精度floatとして格納される。
xTilt()も参照してください 。
qreal QTabletEvent::z() const
デバイスのz位置を返します。通常、これは4Dマウスのホイールで表されます。デバイスがZ軸をサポートしていない場合、この値は常に0になります。これは圧力とは異なります。
注: 値は単精度floatとして格納されます。
pressure()も参照してください 。
©2024 The Qt Company Ltd. 本書に含まれる文書の著作権は、それぞれの所有者に帰属します。 本書で提供されるドキュメントは、Free Software Foundation が発行したGNU Free Documentation License version 1.3に基づいてライセンスされています。 Qtおよびそれぞれのロゴは、フィンランドおよびその他の国におけるThe Qt Company Ltd.の 商標です。その他すべての商標は、それぞれの所有者に帰属します。