Qt Creator中鼠标键盘事件的处理实现自定义鼠标指针 |
您所在的位置:网站首页 › qt获取当前鼠标位置 › Qt Creator中鼠标键盘事件的处理实现自定义鼠标指针 |
Qt中的事件可以在QEvent中查看。下面我们只是找两个例子来进行简单的演示。 在public中添加两个函数的声明 void mouseMoveEvent(QMouseEvent *); void keyPressEvent(QKeyEvent *);1.添加一个Label和一个PushButton,将他们拉长点,因为一会要在上面显示标语。 2.在mainwindow.cpp中的构造函数里添加两个部件的显示文本。 label->setText(tr("按下键盘上的A键试试!")); pushButton->setText(tr("按下鼠标的一个键,然后移动鼠标试试")); 3.然后在下面进行两个函数的定义。 /*以下是鼠标移动事件*/ void MainWindow::mouseMoveEvent(QMouseEvent *m) { //这里的函数名和参数不能更 改 QCursor my(QPixmap("E:/Qt/Qt-Creator-Example/event/time.png")); //为鼠标指针选择图片,注意这里要用绝对路径,且要用“/”,而不能用“\” QApplication::setOverrideCursor(my); //将鼠标指针更改为自己设置的图片 // 获取鼠标的位置 int x = m->pos().x(); int y = m->pos().y(); pushButton->setText(tr("鼠标现在的坐标是(%1,%2),当前坐标").arg(x).arg(y)); // 将鼠标的位置坐标显示在按钮上 pushButton->move(m->pos()); // 让按钮跟随鼠标移动 } // 键盘按下事件 void MainWindow::keyPressEvent(QKeyEvent *k) { if(k->key() == Qt::Key_space) //判断是否是A键按下 { label->setPixmap(QPixmap("E:/Qt/Qt-Creator-Example/event/linux.jpg")); label->resize(100,100); //更改标签图片和大小 } } 注意:这两个函数不是自己新建的,而是对已有函数的重定义,所有函数名和参数都不能改。第一个函数对鼠标移动事件进行了重写。其中实现了鼠标指针的更改,和按钮跟随鼠标移动的功能。 第二个函数对键盘的A键按下实现了新的功能。 效果如下。 按下鼠标的一个键,并移动鼠标。 按下键盘上的空格键。 |
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |