QMouseEvent类
QMouseEvent类包含描述鼠标事件的参数。...
头文件 | #include <QMouseEvent> |
CMake | find_package(Qt6 REQUIRED COMPONENTS Gui) target_link_libraries(mytarget PRIVATE Qt6::Gui) |
qmake | QT += gui |
继承自 | QSinglePointEvent |
- 包括继承成员在内的所有成员列表
- 已弃用的成员
- QMouseEvent是事件类的一部分。
公有函数
QMouseEvent(QEvent::Type type, const QPointF &localPos, const QPointF &globalPos, Qt::MouseButton button, Qt::MouseButtons buttons, Qt::KeyboardModifiers modifiers, const QPointingDevice *device = QPointingDevice::primaryPointingDevice()) | |
QMouseEvent(QEvent::Type type, const QPointF &localPos, const QPointF &scenePos, const QPointF &globalPos, Qt::MouseButton button, Qt::MouseButtons buttons, Qt::KeyboardModifiers modifiers, const QPointingDevice *device = QPointingDevice::primaryPointingDevice()) | |
Qt::MouseEventFlags | flags() const |
详细描述
当鼠标按钮在控件内部被按下或释放,或者鼠标光标移动时,将发生鼠标事件。
除非启用了QWidget::setMouseTracking来启用鼠标跟踪,否则只能当鼠标按钮被按下时才会发生鼠标移动事件。
Qt在控件内部按下鼠标按钮时会自动捕获鼠标;该控件将继续收到鼠标事件,直到最后一个鼠标按钮被释放。
鼠标事件包含一个特殊的接受标记,指示接收者是否想要事件。如果鼠标事件未被您的控件处理,则应调用ignore()。鼠标事件会沿父控件链向上传播,直到有一个控件通过accept()接受它,或事件过滤器消耗它。
注意:如果将鼠标事件传播到已设置Qt::WA_NoMousePropagation的控件,则不会进一步传播到父控件链的上层。
可以通过调用从QInputEvent继承的modifiers()函数来查找键盘修改键的状态。
position()函数提供了相对于接收鼠标事件的控件或项目的光标位置。如果您因鼠标事件而移动了控件,请使用globalPosition()返回的全局位置,以避免抖动运动。
可以使用 QWidget::setEnabled() 函数来启用或禁用窗口部件的鼠标和键盘事件。
重新实现 QWidget 的事件处理程序,包括 QWidget::mousePressEvent()、QWidget::mouseReleaseEvent()、QWidget::mouseDoubleClickEvent() 以及 QWidget::mouseMoveEvent(),以便在自己的窗口部件中接收鼠标事件。
另见QWidget::setMouseTracking()、QWidget::grabMouse() 和 QCursor::pos()。
成员函数文档
QMouseEvent::QMouseEvent(QEvent::Type type, const QPointF &localPos, const QPointF &globalPos, Qt::MouseButton button, Qt::MouseButtons buttons, Qt::KeyboardModifiers modifiers, const QPointingDevice *device = QPointingDevice::primaryPointingDevice())
从指定的 device 构造一个鼠标事件对象。
type 参数必须是 QEvent::MouseButtonPress、QEvent::MouseButtonRelease、QEvent::MouseButtonDblClick 或 QEvent::MouseMove。
localPos 是相对于接收到的窗口部件或项的鼠标指针位置。在屏幕坐标中,光标的位置由 globalPos 指定。窗口位置被设置为与 localPos 相同的值。引发事件的 button 以 Qt::MouseButton 枚举中的值给出。如果事件类型 type 为 MouseMove,则为此事件适当的光标按钮是 Qt::NoButton。 buttons 是事件发生时的所有按钮的状态,modifiers 是所有键盘修饰符的状态。
QMouseEvent::QMouseEvent(QEvent::Type type, const QPointF &localPos, const QPointF &scenePos, const QPointF &globalPos, Qt::MouseButton button, Qt::MouseButtons buttons, Qt::KeyboardModifiers modifiers, const QPointingDevice *device = QPointingDevice::primaryPointingDevice())
构造一个鼠标事件对象。
type 参数必须是 QEvent::MouseButtonPress、QEvent::MouseButtonRelease、QEvent::MouseButtonDblClick 或 QEvent::MouseMove。
localPos、scenePos 和 globalPos 指定了鼠标指针相对于接收到的窗口部件或项、窗口以及屏幕或桌面的位置。
引发事件的 button 以 Qt::MouseButton 枚举中的值给出。如果事件类型 type 为 MouseMove,则为此事件适当的光标按钮是 Qt::NoButton。 buttons 是事件发生时的所有按钮的状态,modifiers 是所有键盘修饰符的状态。
Qt::MouseEventFlags QMouseEvent::flags() const
返回鼠标事件标志。
鼠标事件标志提供了有关鼠标事件附加信息。
© 2024 Qt 公司有限公司。此文档中包含的文档贡献归各自所有者所有。本提供的文档在GNU自由文档许可版本1.3的条款下获得许可,该许可由自由软件基金会公布。Qt及相应的标志是芬兰及在全球范围内的The Qt Company有限公司的商标。所有其他商标均为其各自所有者的财产。