QTabletEvent 類包含數位闆事件的描述參數。 更多...
| 頭: | #include <QTabletEvent> |
| qmake: | QT += gui |
| 繼承: | QInputEvent |
| enum | PointerType { UnknownPointer, Pen, Cursor, Eraser } |
| enum | TabletDevice { NoDevice, Puck, Stylus, Airbrush, FourDMouse, RotationStylus } |
| QTabletEvent (QEvent::Type type , const QPointF & pos , const QPointF & globalPos , int device , int pointerType , qreal pressure , int xTilt , int yTilt , qreal tangentialPressure , qreal rotation , int z , Qt::KeyboardModifiers keyState , qint64 uniqueID , Qt::MouseButton button , Qt::MouseButtons buttons ) | |
| Qt::MouseButton | button () const |
| Qt::MouseButtons | buttons () const |
| QTabletEvent::TabletDevice | deviceType () const |
| QPoint | globalPos () const |
| const QPointF & | globalPosF () const |
| int | globalX () const |
| int | globalY () const |
| QTabletEvent::PointerType | pointerType () const |
| QPoint | pos () const |
| const QPointF & | posF () const |
| qreal | pressure () const |
| qreal | rotation () const |
| qreal | tangentialPressure () const |
| qint64 | uniqueId () const |
| int | x () const |
| int | xTilt () const |
| int | y () const |
| int | yTilt () const |
| int | z () const |
數位闆事件 由數位闆外圍設備 (譬如 Wacom 數位闆及各種其它品牌) 和電磁手寫筆設備 (包括采用某些類型的數位闆計算機) 生成。(不同於 QTouchEvent 觸摸屏生成,甚至在觸摸屏上使用無源手寫筆時)。
數位闆事件類似於鼠標事件;例如, x (), y (), pos (), globalX (), globalY (),和 globalPos () 訪問器提供光標位置,且可以看到哪個 buttons () 被按下 (將手寫筆尖端按在數位闆錶麵相當於鼠標左鍵)。但數位闆事件還傳遞數位闆設備驅動程序提供的一些額外信息;例如,可能想要做更高分辨率坐標的亞像素渲染 ( globalPosF ()),調節顔色亮度基於 pressure () 將工具緊靠數位闆錶麵,使用不同筆刷根據使用中的工具類型 ( deviceType ()),以某種方式調節筆刷形狀根據工具相對數位闆錶麵 X 軸和 Y 軸的傾斜 ( xTilt () 和 yTilt ()),及使用虛擬橡皮擦而不是筆刷若用戶切換到雙端手寫筆的另一端 ( pointerType ()).
每個事件均包含接受標誌,指示接收者是否想要此事件。應該調用 QTabletEvent::accept () 若處理數位闆事件;否則,它會被發送給父級 Widget。例外情況是 TabletEnterProximity and TabletLeaveProximity 事件:這些隻發送給 QApplication 且不校驗它們是否被接受。
The QWidget::setEnabled () 函數可以用於啓用/禁用 Widget 的鼠標、數位闆及鍵盤事件。
事件處理程序 QWidget::tabletEvent () 接收 TabletPress , TabletRelease and TabletMove 事件。Qt 首先會發送數位闆事件,然後若事件不被任何 Widget 所接受,它會發送鼠標事件。這允許並非為數位闆設計的應用程序用戶,像鼠標一樣使用數位闆。不管怎樣,高分辨率繪圖應用程序應該處理數位闆事件,因為它們齣現的頻率會更高,對平滑且準確的繪圖有好處。若數位闆事件被拒絕,則可以壓縮閤成鼠標事件以提高效率。
New in Qt 5.4: QTabletEvent includes all information available from the device, including QTabletEvent::buttons ()。先前是不可能的,接受所有數位闆事件,又知道哪個手寫筆按鈕被按下。
注意,當按下懸停在數位闆上的手寫筆按鈕時將生成某些類型的數位闆按鈕按下,而對於其它類型,將手寫筆按在數位闆錶麵以同時注冊按下手寫筆按鈕有必要。
若數位闆在 xorg.conf 被配置為使用 Wacom 驅動程序,則手寫筆、橡皮擦及 (可選) 光標和觸摸闆將存在單獨 XInput "設備"。Qt 通過它們的名稱識彆這些。否則,若數位闆被配置為使用 evdev 驅動程序,將隻存在一個設備且應用程序可能無法區分手寫筆和橡皮擦。
數位闆支持目前要求 WACOM Windows 驅動程序提供 DLL
wintab32.dll
待安裝。它包含在較舊包中,例如
pentablet_5.3.5-3.exe
.
此枚舉定義生成事件是什麼點類型。
| 常量 | 值 | 描述 |
|---|---|---|
QTabletEvent::UnknownPointer
|
0
|
未知設備。 |
QTabletEvent::Pen
|
1
|
像手寫筆設備的尖端 (筆的窄端)。 |
QTabletEvent::Cursor
|
2
|
任何像遊標的設備。 |
QTabletEvent::Eraser
|
3
|
像手寫筆設備的橡皮擦端 (筆的寬端)。 |
另請參閱 pointerType ().
此枚舉定義生成事件的設備類型。
| 常量 | 值 | 描述 |
|---|---|---|
QTabletEvent::NoDevice
|
0
|
沒有設備,或未知設備。 |
QTabletEvent::Puck
|
1
|
遊標 (類似扁平鼠標的設備,帶有十字準綫透明圓圈)。 |
QTabletEvent::Stylus
|
2
|
手寫筆。 |
QTabletEvent::Airbrush
|
3
|
噴槍 |
QTabletEvent::FourDMouse
|
4
|
4D 鼠標。 |
QTabletEvent::RotationStylus
|
6
|
特殊手寫筆,還知道鏇轉 (6D 手寫筆)。 |
該枚舉在 Qt 4.1 引入或被修改。
構造數位闆事件為給定 type .
The pos 參數指示事件發生在 Widget 中哪裏; globalPos 是絕對坐標對應位置。
pressure 包含的壓力施加於 device .
pointerType 描述正在使用的筆類型。
xTilt and yTilt 分彆包含設備相對 X 軸和 Y 軸的傾斜度。
keyState 指定按下瞭哪個鍵盤修飾符 (如 Ctrl ).
The uniqueID 參數包含當前設備的唯一 ID。
The z 參數包含數位闆設備的坐標,這通常由 4D 鼠標滾輪給齣。若設備不支持 Z 軸,此處傳遞 0。
The tangentialPressure 參數包含空氣刷的切嚮壓力。若設備不支持切嚮壓力,此處傳遞 0。
rotation contains the device's rotation in degrees. 4D mice, the Wacom Art Pen, and the Apple Pencil support rotation. If the device does not support rotation, pass 0 here.
The button 導緻給定值事件來自 Qt::MouseButton 枚舉。若事件 type 不是 TabletPress or TabletRelease ,此事件的相應按鈕為 Qt::NoButton .
buttons 是事件發生時的所有按鈕狀態。
另請參閱 pos (), globalPos (), device (), pressure (), xTilt (), yTilt (), uniqueId (), rotation (), tangentialPressure (),和 z ().
返迴導緻事件的按鈕。
注意:返迴值始終是 Qt::NoButton for TabletMove , TabletEnterProximity and TabletLeaveProximity 事件。
另請參閱 buttons () 和 Qt::MouseButton .
返迴按鈕狀態,當生成事件時。按鈕狀態是按鈕的組閤來自 Qt::MouseButton 枚舉使用 OR 運算符。對於 TabletMove 事件,這是被按下的所有按鈕。對於 TabletPress 事件,這包括導緻事件的按鈕。對於 TabletRelease 事件,這排除導緻事件的按鈕。
另請參閱 button () 和 Qt::MouseButton .
返迴生成事件的設備類型。
另請參閱 TabletDevice .
返迴設備的全局位置 當事件發生時 。這對異步窗口係統 (像 X11) 很重要;每當圍繞響應鼠標事件移動 Widget 時,globalPos() 會顯著異於當前位置 QCursor::pos ().
返迴設備的全局位置 當事件發生時 。這對異步窗口係統 (像 X11) 很重要;每當圍繞響應鼠標事件移動 Widget 時,globalPosF() 會顯著異於當前位置 QCursor::pos ().
另請參閱 posF ().
返迴事件發生時的鼠標指針全局 X 位置。
另請參閱 globalY (), globalPos (),和 hiResGlobalX ().
返迴事件發生時數位闆設備的全局 y 位置。
另請參閱 globalX (), globalPos (),和 hiResGlobalY ().
返迴生成事件的點類型。
返迴設備位置,相對接收事件 Widget。
若圍繞響應鼠標事件移動 Widget,使用 globalPos () 而不是此函數。
另請參閱 x (), y (),和 globalPos ().
返迴設備位置,相對接收事件 Widget。
若圍繞響應鼠標事件移動 Widget,使用 globalPosF () 而不是此函數。
另請參閱 globalPosF ().
返迴設備的壓力。0.0 指示手寫筆不在數位闆中,1.0 指示手寫筆的最大壓力數。
另請參閱 tangentialPressure ().
Returns the rotation of the current tool in degrees, where zero means the tip of the stylus is pointing towards the top of the tablet, a positive value means it's turned to the right, and a negative value means it's turned to the left. This can be given by a 4D Mouse or a rotation-capable stylus (such as the Wacom Art Pen or the Apple Pencil). If the device does not support rotation, this value is always 0.0.
返迴設備的切嚮壓力。這通常由噴槍工具指輪給齣。範圍是從 -1.0 到 1.0。0.0 指示中立位置。目前噴槍隻可以從中立位置嚮正值方嚮移動。若設備不支持切嚮壓力,此值始終為 0.0。
另請參閱 pressure ().
返迴當前設備的唯一 ID,使之可能區分數位闆中同時使用的多個設備。
此特徵的支持從屬數位闆。
同一設備的值可能因操作係統而異。
更高版本的 Linux Wacom 驅動程序現在會報告 ID 信息。若有支持唯一 ID 的數位闆且在 Linux 未獲取到信息,考慮升級驅動程序。
從 Qt 4.2 起,唯一 ID 相同不管鋼筆取嚮。早期版本會報告不同值,當在某些 OS 使用手寫筆的橡皮擦端和鋼筆端時。
另請參閱 pointerType ().
返迴設備的 x 位置,相對接收事件 Widget。
返迴設備 (例如:鋼筆) 和 X 軸垂直方嚮之間的角度。正值朝嚮數位闆物理右側。角度範圍 -60 到 +60 度。
另請參閱 yTilt ().
返迴設備的 y 位置,相對接收事件 Widget。
返迴設備 (例如:鋼筆) 和 Y 軸垂直方嚮之間的角度。正值朝嚮數位闆底部。角度範圍 -60 到 +60 度。
另請參閱 xTilt ().
返迴設備的 Z 位置。通常,這由 4D 鼠標滾輪錶示。若設備不支持 Z 軸,此值始終為 0。這是 not 如同壓力。
另請參閱 pressure ().