求Wacom数位板Python示例:PyQt QTabletEvent可用实现代码
使用PyQt的QTabletEvent处理Wacom数位板的Python示例
嘿,我刚好折腾出一个用PyQt的QTabletEvent处理Wacom数位板的Python示例,正好能解决你的需求!确实Wacom没有官方Python SDK,但PyQt的这个类完全能搞定数位板的核心输入——包括压力、倾斜、笔按钮这些关键参数,之前我也找了好久Python示例,终于自己捣鼓出可运行的Demo,分享给你:
import sys from PyQt5.QtWidgets import QApplication, QWidget, QLabel, QVBoxLayout from PyQt5.QtGui import QPainter, QPen, QColor from PyQt5.QtCore import Qt class TabletDemo(QWidget): def __init__(self): super().__init__() self.initUI() self.last_pos = None self.pen_color = QColor(0, 0, 0) def initUI(self): self.setWindowTitle('Wacom数位板PyQt测试') self.setGeometry(100, 100, 800, 600) # 用来实时显示数位板参数的标签 self.info_label = QLabel('移动数位笔来测试功能', self) self.info_label.setAlignment(Qt.AlignCenter) layout = QVBoxLayout() layout.addWidget(self.info_label) self.setLayout(layout) def tabletEvent(self, event): # 提取数位笔的核心参数 pen_pressure = event.pressure() # 压力值范围0.0-1.0 pen_tilt_x = event.tiltX() # X轴倾斜角度范围-60到60 pen_tilt_y = event.tiltY() # Y轴倾斜角度范围-60到60 pen_button = event.button() # 当前按下的笔按钮 cursor_pos = event.pos() # 光标在窗口内的位置 # 更新参数显示标签 info_text = ( f"压力值: {pen_pressure:.2f}\n" f"X轴倾斜: {pen_tilt_x} | Y轴倾斜: {pen_tilt_y}\n" f"笔按钮状态: {'按下' if pen_button == Qt.LeftButton else '未按下'}\n" f"当前位置: ({cursor_pos.x()}, {cursor_pos.y()})" ) self.info_label.setText(info_text) # 实现压力感应绘画:压力越大线条越粗 if event.type() == event.TabletPress or event.type() == event.TabletMove: painter = QPainter(self) pen_width = pen_pressure * 10 # 把压力值映射到线条粗细 pen = QPen(self.pen_color, pen_width, Qt.SolidLine, Qt.RoundCap) painter.setPen(pen) if self.last_pos: painter.drawLine(self.last_pos, cursor_pos) self.last_pos = cursor_pos elif event.type() == event.TabletRelease: self.last_pos = None event.accept() if __name__ == '__main__': app = QApplication(sys.argv) demo = TabletDemo() demo.show() sys.exit(app.exec_())
说明一下这个Demo的功能:
- 实时显示数位笔的压力值、倾斜角度、按钮状态和位置
- 支持压力感应绘画,线条粗细会随你下笔的力度变化
- 运行前确保已经安装PyQt5:
pip install pyqt5,启动后用Wacom数位笔在窗口内操作就能看到效果
你可以根据自己的需求扩展这个Demo,比如添加颜色切换、橡皮擦功能,或者把绘画内容保存为图片之类的。
内容的提问来源于stack exchange,提问作者Roi Yozevitch
相关产品推荐
相关产品推荐

