QTabletEvent 類

The QTabletEvent 類包含數位闆事件的描述參數。 更多...

頭: #include <QTabletEvent>
qmake: QT += gui
繼承: QInputEvent

公共類型

enum PointerType { UnknownPointer, Pen, Cursor, Eraser }
enum TabletDevice { NoDevice, Puck, Stylus, Airbrush, FourDMouse, RotationStylus }

公共函數

QTabletEvent (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
TabletDevice device () const
QPoint globalPos () const
const QPointF & globalPosF () const
int globalX () const
int globalY () const
(棄用) const QPointF & hiResGlobalPos () const
qreal hiResGlobalX () const
qreal hiResGlobalY () const
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

額外繼承成員

詳細描述

The QTabletEvent 類包含數位闆事件的描述參數。

數位闆事件 由數位闆外圍設備 (譬如 Wacom 數位闆及各種其它品牌) 和電磁手寫筆設備 (包括采用某些類型的數位闆計算機) 生成。(不同於 QTouchEvent 觸摸屏生成,甚至在觸摸屏上使用無源手寫筆時)。

數位闆事件類似於鼠標事件;例如, x (), y (), pos (), globalX (), globalY (),和 globalPos () 訪問器提供光標位置,且可以看到哪個 buttons () 被按下 (將手寫筆尖端按在數位闆錶麵相當於鼠標左鍵)。但數位闆事件還傳遞數位闆設備驅動程序提供的一些額外信息;例如,可能想要做更高分辨率坐標的亞像素渲染 ( hiResGlobalX () 和 hiResGlobalY ()),調節顔色亮度基於 pressure () 將工具緊靠數位闆錶麵,使用不同筆刷根據使用中的工具類型 ( device ()),以某種方式調節筆刷形狀根據工具相對數位闆錶麵 X 軸和 Y 軸的傾斜 ( xTilt () 和 yTilt ()),及使用虛擬橡皮擦而不是筆刷若用戶切換到雙端手寫筆的另一端 ( pointerType ()).

每個事件均包含接受標誌,指示接收者是否想要此事件。應該調用 QTabletEvent::accept () 若處理數位闆事件;否則,它會被發送給父級 Widget。例外情況是 TabletEnterProximity and TabletLeaveProximity 事件:這些隻發送給 QApplication 且不校驗它們是否被接受。

The QWidget::setEnabled () 函數可以用於啓用/禁用 Widget 的鼠標、數位闆及鍵盤事件。

事件處理程序 QWidget::tabletEvent () 接收 TabletPress , TabletRelease and TabletMove 事件。Qt 首先會發送數位闆事件,然後若事件不被任何 Widget 所接受,它會發送鼠標事件。這允許並非為數位闆設計的應用程序用戶,像鼠標一樣使用數位闆。不管怎樣,高分辨率繪圖應用程序應該處理數位闆事件,因為它們齣現的頻率會更高,對平滑且準確的繪圖有好處。若數位闆事件被拒絕,則可以壓縮閤成鼠標事件以提高效率。

Qt 5.4 新增: QTabletEvent 包括來自設備的所有可用信息,包括 QTabletEvent::buttons ()。先前是不可能的,接受所有數位闆事件,又知道哪個手寫筆按鈕被按下。

注意,當按下懸停在數位闆上的手寫筆按鈕時將生成某些類型的數位闆按鈕按下,而對於其它類型,將手寫筆按在數位闆錶麵以同時注冊按下手寫筆按鈕有必要。

X11 用戶注意事項

若數位闆在 xorg.conf 被配置為使用 Wacom 驅動程序,則手寫筆、橡皮擦及 (可選) 光標和觸摸闆將存在單獨 XInput "設備"。Qt 通過它們的名稱識彆這些。否則,若數位闆被配置為使用 evdev 驅動程序,將隻存在一個設備且應用程序可能無法區分手寫筆和橡皮擦。

Windows 用戶注意事項

數位闆支持目前要求 WACOM Windows 驅動程序提供 DLL wintab32.dll 待安裝。它包含在較舊包中,例如 pentablet_5.3.5-3.exe .

成員類型文檔編製

enum QTabletEvent:: PointerType

此枚舉定義生成事件是什麼點類型。

常量 描述
QTabletEvent::UnknownPointer 0 未知設備。
QTabletEvent::Pen 1 像手寫筆設備的尖端 (筆的窄端)。
QTabletEvent::Cursor 2 任何像遊標的設備。
QTabletEvent::Eraser 3 像手寫筆設備的橡皮擦端 (筆的寬端)。

另請參閱 pointerType ().

enum QTabletEvent:: TabletDevice

此枚舉定義生成事件的設備類型。

常量 描述
QTabletEvent::NoDevice 0 沒有設備,或未知設備。
QTabletEvent::Puck 1 遊標 (類似扁平鼠標的設備,帶有十字準綫透明圓圈)。
QTabletEvent::Stylus 2 手寫筆。
QTabletEvent::Airbrush 3 噴槍
QTabletEvent::FourDMouse 4 4D 鼠標。
QTabletEvent::RotationStylus 6 特殊手寫筆,還知道鏇轉 (6D 手寫筆)。

該枚舉在 Qt 4.1 引入或被修改。

成員函數文檔編製

QTabletEvent:: QTabletEvent ( 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 )

構造數位闆事件為給定 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 包含以度為單位的設備鏇轉。4D 鼠標和 Wacom 藝術鋼筆支持鏇轉。若設備不支持鏇轉,此處傳遞 0。

The button 導緻給定值事件來自 Qt::MouseButton 枚舉。若事件 type 不是 TabletPress or TabletRelease ,此事件的相應按鈕為 Qt::NoButton .

buttons 是事件發生時的所有按鈕狀態。

另請參閱 pos (), globalPos (), device (), pressure (), xTilt (), yTilt (), uniqueId (), rotation (), tangentialPressure (),和 z ().

Qt::MouseButton QTabletEvent:: button () const

返迴導緻事件的按鈕。

注意:返迴值始終是 Qt::NoButton for TabletMove , TabletEnterProximity and TabletLeaveProximity 事件。

另請參閱 buttons () 和 Qt::MouseButton .

Qt::MouseButtons QTabletEvent:: buttons () const

返迴按鈕狀態,當生成事件時。按鈕狀態是按鈕的組閤來自 Qt::MouseButton 枚舉使用 OR 運算符。對於 TabletMove 事件,這是被按下的所有按鈕。對於 TabletPress 事件,這包括導緻事件的按鈕。對於 TabletRelease 事件,這排除導緻事件的按鈕。

另請參閱 button () 和 Qt::MouseButton .

TabletDevice QTabletEvent:: device () const

返迴生成事件的設備類型。

另請參閱 TabletDevice .

QPoint QTabletEvent:: globalPos () const

返迴設備的全局位置 當事件發生時 。這對異步窗口係統 (像 X11) 很重要;每當圍繞響應鼠標事件移動 Widget 時,globalPos() 會顯著異於當前位置 QCursor::pos ().

另請參閱 globalX (), globalY (),和 hiResGlobalPos ().

const QPointF &QTabletEvent:: globalPosF () const

返迴設備的全局位置 當事件發生時 。這對異步窗口係統 (像 X11) 很重要;每當圍繞響應鼠標事件移動 Widget 時,globalPosF() 會顯著異於當前位置 QCursor::pos ().

另請參閱 posF ().

int QTabletEvent:: globalX () const

返迴事件發生時的鼠標指針全局 X 位置。

另請參閱 globalY (), globalPos (),和 hiResGlobalX ().

int QTabletEvent:: globalY () const

返迴事件發生時數位闆設備的全局 y 位置。

另請參閱 globalX (), globalPos (),和 hiResGlobalY ().

const QPointF &QTabletEvent:: hiResGlobalPos () const

此函數被棄用。

交付自數位闆錶達的高精度坐標。子像素信息按小數部分 QPointF .

另請參閱 globalPos (), hiResGlobalX (),和 hiResGlobalY ().

qreal QTabletEvent:: hiResGlobalX () const

數位闆設備的高精度 X 位置。

qreal QTabletEvent:: hiResGlobalY () const

數位闆設備的高精度 Y 位置。

PointerType QTabletEvent:: pointerType () const

返迴生成事件的點類型。

QPoint QTabletEvent:: pos () const

返迴設備位置,相對接收事件 Widget。

若圍繞響應鼠標事件移動 Widget,使用 globalPos () 而不是此函數。

另請參閱 x (), y (),和 globalPos ().

const QPointF &QTabletEvent:: posF () const

返迴設備位置,相對接收事件 Widget。

若圍繞響應鼠標事件移動 Widget,使用 globalPosF () 而不是此函數。

另請參閱 globalPosF ().

qreal QTabletEvent:: pressure () const

返迴設備的壓力。0.0 指示手寫筆不在數位闆中,1.0 指示手寫筆的最大壓力數。

另請參閱 tangentialPressure ().

qreal QTabletEvent:: rotation () const

返迴當前設備的鏇轉 (以度為單位)。這通常由 4D 鼠標給齣。若設備不支持鏇轉,此值始終為 0.0。

qreal QTabletEvent:: tangentialPressure () const

返迴設備的切嚮壓力。這通常由噴槍工具指輪給齣。範圍是從 -1.0 到 1.0。0.0 指示中立位置。目前噴槍隻可以從中立位置嚮正值方嚮移動。若設備不支持切嚮壓力,此值始終為 0.0。

另請參閱 pressure ().

qint64 QTabletEvent:: uniqueId () const

返迴當前設備的唯一 ID,使之可能區分數位闆中同時使用的多個設備。

此特徵的支持從屬數位闆。

同一設備的值可能因操作係統而異。

更高版本的 Linux Wacom 驅動程序現在會報告 ID 信息。若有支持唯一 ID 的數位闆且在 Linux 未獲取到信息,考慮升級驅動程序。

從 Qt 4.2 起,唯一 ID 相同不管鋼筆取嚮。早期版本會報告不同值,當在某些 OS 使用手寫筆的橡皮擦端和鋼筆端時。

另請參閱 pointerType ().

int QTabletEvent:: x () const

返迴設備的 x 位置,相對接收事件 Widget。

另請參閱 y () 和 pos ().

int QTabletEvent:: xTilt () const

返迴設備 (例如:鋼筆) 和 X 軸垂直方嚮之間的角度。正值朝嚮數位闆物理右側。角度範圍 -60 到 +60 度。

另請參閱 yTilt ().

int QTabletEvent:: y () const

返迴設備的 y 位置,相對接收事件 Widget。

另請參閱 x () 和 pos ().

int QTabletEvent:: yTilt () const

返迴設備 (例如:鋼筆) 和 Y 軸垂直方嚮之間的角度。正值朝嚮數位闆底部。角度範圍 -60 到 +60 度。

另請參閱 xTilt ().

int QTabletEvent:: z () const

返迴設備的 Z 位置。通常,這由 4D 鼠標滾輪錶示。若設備不支持 Z 軸,此值始終為 0。這是 not 如同壓力。

另請參閱 pressure ().