首页
学习
活动
专区
圈层
工具
发布
    • 综合排序
    • 最热优先
    • 最新优先
    时间不限
  • 来自专栏C++/Linux

    【QT】鼠标按键事件 - QMouseEvent & QKeyEvent

    鼠标事件 在 Qt 中,⿏标事件是⽤ QMouseEvent 类来实现的。当在窗⼝中按下⿏标或者移动⿏标时,都会产⽣⿏标事件。 利⽤ QMouseEvent 类可以获取⿏标的哪个键被按下了以及⿏标的当前位置等信息。 在 Qt 帮助⽂档中查找 QMouseEvent 类如下图⽰: (1)鼠标单击事件 在 Qt 中,⿏标按下是通过虚函数 mousePressEvent() 来捕获的。 mouseReleaseEvent() 函数原型如下: [virtual protected] void QWidget::mouseReleaseEvent(QMouseEvent *event) mouseDoubleClickEvent() 函数原型如下: [virtual protected] void QWidget::mouseDoubleClickEvent(QMouseEvent

    3.2K10编辑于 2024-07-20
  • 来自专栏编码视界

    PySide6 GUI 编程(32):QMouseEvent 鼠标事件

    QWidgetdef get_time_str() -> str: return datetime.now().isoformat(sep = ' ')def gen_event_str(event: QMouseEvent v_layout) self.setCentralWidget(container) # 需要先按下鼠标按钮再移动才能触发 def mouseMoveEvent(self, event: QMouseEvent 如果想让事件继续传播,可以调用 event.ignore() """ event.accept() def mousePressEvent(self, event: QMouseEvent self.clicked_label.setText(gen_event_str(event)) event.accept() def mouseReleaseEvent(self, event: QMouseEvent

    94033编辑于 2024-08-23
  • 来自专栏自然语言处理

    Qt学习(四)---实例涂鸦画板mspaint

    2、在dialog.h里面添加如下代码 引入头文件 #include <QDialog> #include <QPainter> #include <QPaintEvent> #include <QMouseEvent #include <QPointF> 函数声明 protected: void paintEvent(QPaintEvent *); void mouseReleaseEvent(QMouseEvent *); void mousePressEvent(QMouseEvent *); void mouseMoveEvent(QMouseEvent *); 私有变量 private: void Dialog::mouseMoveEvent(QMouseEvent *event){ if(event->buttons()&Qt::LeftButton) update();//进行绘制 } } //当鼠标释放时,也进行重新绘制 void Dialog::mouseReleaseEvent(QMouseEvent

    90520编辑于 2023-08-26
  • 来自专栏代码编写世界

    使用QT绘制一个多边形

    ); public slots: protected: void paintEvent(QPaintEvent *); //绘制 void mousePressEvent(QMouseEvent *e); //按下 void mouseMoveEvent(QMouseEvent *e); //移动 void mouseReleaseEvent(QMouseEvent *e); //松开 void mouseDoubleClickEvent(QMouseEvent *event); //双击 bool bDraw; / GRAPHICSPAINTER_H GraphicsPainter.cpp: #include "graphicspainter.h" #include <QPainter> #include <QMouseEvent //按下 void GraphicsPainter::mousePressEvent(QMouseEvent *e) { if(bDraw) { if(!

    1.9K10发布于 2020-03-19
  • 来自专栏jiajia_deng

    Qt 窗口鼠标消息处理

    (QMouseEvent \*); // 鼠标移动消息,默认要在触发了mousePressEvent后才生效 // 需要在构造函数中调用 this->setAttribute(Qt::WA\_MouseTracking ); void mouseMoveEvent(QMouseEvent \*); // 鼠标进入窗口范围内消息 void enterEvent(QEvent \*); // 鼠标离开窗口范围内消息 void ) : QWidget(parent) { this->setAttribute(Qt::WA_MouseTracking); } void CWidget::mousePressEvent(QMouseEvent "; } } void CWidget::mouseReleaseEvent(QMouseEvent *ev) { // 鼠标左键单击弹起 if (ev->button() == Qt: { // 双击消息,会产生一次 mousePressEvent qDebug() << “doubleClick…”; } void CWidget::mouseMoveEvent(QMouseEvent

    77920编辑于 2023-10-20
  • 来自专栏C++/Linux

    【QT】事件分发器 & 事件过滤器

    Widget(QWidget *parent = nullptr); ~Widget(); // 鼠标点击事件 void mousePressEvent(QMouseEvent Ui::Widget *ui; }; 2、在 “widget.cpp” ⽂件中实现 ⿏标点击事件 和 拦截事件; #include <QDebug> #include <QMouseEvent > void Widget::mousePressEvent(QMouseEvent *event) { if(event->button() == Qt::LeftButton * event = static_cast<QMouseEvent*>(e); QString str = QString("Event 函数中鼠标按下: x = %1, y = * event = static_cast<QMouseEvent*>(e); QString str = QString("事件过滤器中鼠标按下:x = %1, y =

    1.4K10编辑于 2024-07-27
  • 来自专栏花狗在Qt

    Qt隐藏系统标题栏,使用自定义标题栏

    隐藏后,会发现无法我们无法移动窗口了,想要移动窗口,我们需要进行鼠标事件重写,包括mousePressEvent(QMouseEvent *event),mouseMoveEvent(QMouseEvent *event),mouseReleaseEvent(QMouseEvent *event)。 首先在mainwindow.h中声明这三个函数: void mousePressEvent(QMouseEvent *event);//鼠标点击 void mouseMoveEvent( QMouseEvent *event);//鼠标移动 void mouseReleaseEvent(QMouseEvent *event);//鼠标释放 //添加类成员m_point(QPoint 类型) QPoint m_point; mianwindow.cpp中进行定义: void MainWindow::mousePressEvent(QMouseEvent *event) { if

    9.8K21发布于 2020-10-28
  • 来自专栏个人编程笔记

    Qt截图软件3-实现矩形区域截图

    painter.drawRect(QRect(sx,sy,ex-sx,ey-sy)); } painter.end(); } void screenview::mousePressEvent(QMouseEvent event->y(); startpoint=event->pos(); } update(); } void screenview::mouseMoveEvent(QMouseEvent ; ey=event->y(); endpoint=event->pos(); update(); } void screenview::mouseReleaseEvent(QMouseEvent ); ~screenview(); protected: void paintEvent(QPaintEvent *event); void mousePressEvent(QMouseEvent *event); void mouseMoveEvent(QMouseEvent *event); protected slots: void mouseReleaseEvent(QMouseEvent

    1.9K10编辑于 2023-03-03
  • 来自专栏嵌入式项目开发

    QT软件开发:解决隐藏QWidget标题栏后窗体无法移动问题

    void mouseReleaseEvent(QMouseEvent *event); void mouseMoveEvent(QMouseEvent *event); void mousePressEvent (QMouseEvent *event); private: ......... ->setupUi(this); setWindowFlags(Qt::FramelessWindowHint); } void login_main::mousePressEvent(QMouseEvent (); isPressedWidget = true; // 当前鼠标按下的即是QWidget而非界面上布局的其它控件 } void login_main::mouseMoveEvent(QMouseEvent m_lastPos.y())); m_lastPos = event->globalPos(); } } void login_main::mouseReleaseEvent(QMouseEvent

    2.3K10编辑于 2022-01-12
  • 来自专栏sktj

    python pyqt5 卡通人物形状窗体

    self.setMask(self.pix) print(self.pix.size()) self.dragPosition = None # 重定义鼠标按下响应函数mousePressEvent(QMouseEvent )和鼠标移动响应函数mouseMoveEvent(QMouseEvent),使不规则窗体能响应鼠标事件,随意拖动。 Qt.OpenHandCursor)) if event.button() == Qt.RightButton: self.close() def mouseMoveEvent(self, QMouseEvent ): if Qt.LeftButton and self.m_drag: # 当左键移动窗体修改偏移值 self.move(QMouseEvent.globalPos () - self.m_DragPosition) QMouseEvent.accept() def mouseReleaseEvent(self, QMouseEvent):

    1.2K20发布于 2019-07-27
  • 来自专栏半生瓜のblog

    【QT】QT事件处理

    事件处理 QT中,事件作为一个对象,继承自QEvent类,常见的有键盘事件QKeyEvent、鼠标事件QMouseEvent和定时器事件QTimerEvent等。 explicit MouseEvent(QWidget *parent = 0); ~MouseEvent(); protected: void mousePressEvent(QMouseEvent *event);//鼠标按下 void mouseMoveEvent(QMouseEvent *event);//鼠标移动 void mouseReleaseEvent(QMouseEvent * mouseEvent = (QMouseEvent*)event; if(mouseEvent->button() & Qt::LeftButton) * mouseEvent = (QMouseEvent*)event; if(mouseEvent->button() & Qt::LeftButton)

    2.3K10编辑于 2023-05-13
  • 来自专栏跟Qt君学编程

    Qt透明无边框窗口

    void mousePressEvent(QMouseEvent *event) { if (event->button() == Qt::LeftButton) { /* 捕获按下时坐标 m_startPoint = frameGeometry().topLeft() - event->globalPos(); } } void mouseMoveEvent(QMouseEvent 完整代码 #include <QWidget> #include <QVBoxLayout> #include <QPushButton> #include <QPainter> #include <QMouseEvent painter.fillRect(this->rect(), QColor(0, 0, 0, 0x20)); /* 设置透明颜色 */ } void mousePressEvent(QMouseEvent m_startPoint = frameGeometry().topLeft() - event->globalPos(); } } void mouseMoveEvent(QMouseEvent

    2.9K20发布于 2019-11-29
  • 来自专栏云曦智划

    Qt实战:云曦日历篇

    *event); void mousePressEvent(QMouseEvent *event); void mouseReleaseEvent(QMouseEvent *event *event); void mousePressEvent(QMouseEvent *event); void mouseReleaseEvent(QMouseEvent *event *event); void mousePressEvent(QMouseEvent *event); void mouseReleaseEvent(QMouseEvent *event *event); void mousePressEvent(QMouseEvent *event); void mouseReleaseEvent(QMouseEvent *event ); QPoint z; protected: void mouseDoubleClickEvent(QMouseEvent *event); //鼠标双击事件 }; #endif

    1.9K30编辑于 2022-10-31
  • 来自专栏祥的专栏

    [QT]获取鼠标坐标以及按键响应

    要包含头文件#include <QMouseEvent> 1.1效果 ? 2.代码 2.1.鼠标事件代码 在头文件中声明 protected: //mouse void mouseMoveEvent(QMouseEvent *event); //移动 void mousePressEvent(QMouseEvent *event); //单击 void mouseReleaseEvent(QMouseEvent *event); / /释放 void mouseDoubleClickEvent(QMouseEvent *event); //双击 void wheelEvent(QWheelEvent *event); //滑轮 在源文件中实现 void check_keyboard_mouse::mouseMoveEvent(QMouseEvent *event) {//移动 QPoint p_ab = event

    5.3K31发布于 2020-03-10
  • 来自专栏嵌入式项目开发

    QT软件开发: 点击鼠标在窗口里绘制矩形(窗口透明背景)

    QRect tempRt(m_startPT, m_endPT); p.drawRect(tempRt); } } void Widget::mousePressEvent(QMouseEvent >pos(); isPressedWidget = true; // 当前鼠标按下的即是QWidget而非界面上布局的其它控件 } void Widget::mouseMoveEvent(QMouseEvent { m_endPT = event->pos(); } this->update(); } void Widget::mouseReleaseEvent(QMouseEvent void mouseReleaseEvent(QMouseEvent *event); void mouseMoveEvent(QMouseEvent *event); void mousePressEvent (QMouseEvent *event); void paintEvent(QPaintEvent *p); private slots: void on_pushButton_clicked

    2.5K20编辑于 2022-01-12
  • 来自专栏sktj

    python pyqt5 窗体动画效果

    event.accept() self.setCursor(QCursor(Qt.OpenHandCursor)) def mouseMoveEvent(self, QMouseEvent ): if Qt.LeftButton and self.m_drag: self.move(QMouseEvent.globalPos() - self.m_DragPosition ) QMouseEvent.accept() def mouseReleaseEvent(self, QMouseEvent): self.m_drag = False

    2K20发布于 2019-07-28
  • 来自专栏全栈程序员必看

    qt实现视频播放器

    PlayerSlider继承自QSlider,行为定义如下: #ifndef PLAYERSLIDER_H #define PLAYERSLIDER_H #include <QSlider> #include <QMouseEvent sigProgress(qint64); private: bool m_bPressed; protected: void mousePressEvent(QMouseEvent *); void mouseMoveEvent(QMouseEvent *); void mouseReleaseEvent(QMouseEvent *); QWidget * parent) : QSlider(parent) { m_bPressed = false; } void PlayerSlider::mousePressEvent(QMouseEvent *e) { QSlider::mouseMoveEvent(e);//必须有这句,否则手动不能移动滑块 } void PlayerSlider::mouseReleaseEvent(QMouseEvent

    4K20编辑于 2022-09-06
  • 来自专栏乌龟哥哥默认学习专栏

    QT学习第4天:qt点击鼠标画一条直线(附源代码和程序)

    TestMouseEvent 在widget.cpp中添加代码 #include "widget.h" #include "ui_widget.h" #include <QEvent> #include<QMouseEvent QEvent *ev) { if ((ev->type() == QEvent::MouseButtonPress)&&(i%2==0)) { i++; QMouseEvent *me1 = static_cast<QMouseEvent*> (ev); 相对坐标 //qDebug() << "MouseButtonPress " << me1 = 0)) { i++; QMouseEvent *me2 = static_cast<QMouseEvent*> (ev); 相对坐标

    3.2K31发布于 2020-08-17
  • 来自专栏后端开发专栏

    QT入门学习——从鼠标事件,定时器事件到绘图学习,绘图设备

    *ev); virtual void mouseReleaseEvent(QMouseEvent *ev); // 鼠标的移动 virtual void mouseMoveEvent (QMouseEvent *ev);signals:};#endif // MYLABEL_Hcpp文件#include "mylabel.h"#include <QDebug>#include <QMouseEvent *ev){ qDebug() << "鼠标释放";}// 鼠标的移动void myLabel::mouseMoveEvent(QMouseEvent *ev){ if(ev->buttons * ev = static_cast<QMouseEvent *>(e); QString str = QString("鼠标按下了,x=%1,y=%2; global坐标为:x=%3, * ev = static_cast<QMouseEvent *>(e); QString str = QString("事件过滤器===鼠标按下了,x=%1,y=%2; global

    87011编辑于 2024-11-06
  • 来自专栏学习之路

    【QT】事件系统入门——QEvent 基础与示例

    示例 – 当鼠标点击时,获取对应的坐标值 该示例主要基于上面代码,实现:当鼠标点击时,获取对应的坐标值 void Label::mousePressEvent(QMouseEvent *event) { 利用 QMouseEvent 类可以获取鼠标的哪个键被按下了以及鼠标的当前位置等信息。 在 Qt 帮助文档中查找 QMouseEvent 类如下图示: 鼠标单击 | 释放 | 双击 | 移动 事件 ① 在 Qt 中,鼠标按下是通过虚函数 mousePressEvent() 来捕获的。 mousePressEvent() 函数原型如下: [ virtual protected] void QWidget:: mousePressEvent (QMouseEvent * event ) mouseReleaseEvent() 函数原型如下: [ virtual protected] void QWidget:: mouseReleaseEvent (QMouseEvent * event

    1.4K00编辑于 2025-03-14
领券