搞定多png图标
AxialisIconWorkshop
更新原画出处
更新三表
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键按下实现了新的功能。