Qt事件
1.重新实现不见的painEvent(),mousePressEvent()等事件处理函数。
2.重新实现notify()函数,这个函数提供了完全的控制,可以在事件过滤器得到事件前获取他们,但是他一次只能处理一个事件。
3.向QApplication对象上安装事件过滤器,这样的有点就是可以同时处理多个事件。
4.重新实现函数event()函数,QObject类的event()函数可以在事件到达默认的事件处理函数之前获得该事件
5.在对象上安装事件过滤器,事件过滤可以在一个界面类中同时处理不同子部件的不同事件。
virtual void mousePressEvent(QMouseEvent *event);
virtual void mouseReleaseEvent(QMouseEvent *event);
virtual void wheelEvent(QWheelEvent *event);
virtual void mouseMoveEvent(QMouseEvent *event);
virtual void contextMenuEvent(QContextMenuEvent *event);
virtual void keyPressEvent(QKeyEvent *event);
//点击鼠标事件
void MainWindow::mousePressEvent(QMouseEvent *event)
{
qDebug()<< event->pos();
}
//释放鼠标事件
void MainWindow::mouseReleaseEvent(QMouseEvent *event)
{
qDebug()<< event->pos();
}
//滑轮事件
void MainWindow::wheelEvent(QWheelEvent *event)
{
if(event->delta()>0)
{
ui->textEdit->zoomIn();//放大
}else {
ui->textEdit->zoomOut();//缩小
}
}
//移动鼠标事件
void MainWindow::mouseMoveEvent(QMouseEvent *event)
{
event->globalPos();
event->windowPos();
qDebug()<< event->pos();
}
//右键菜单事件,通常用customContextMenuRequested()信号
void MainWindow::contextMenuEvent(QContextMenuEvent *event)
{
}
//键盘事件
void MainWindow::keyPressEvent(QKeyEvent *event)
{
event->key();//返回按下的键(16进制)
if(event->modifiers() == Qt::ControlModifier) //判断是否按下Ctrl键
{
}
if(event->key() == Qt::Key_4) //判断按下的4键
{
}
if(event->key() == Qt::Key_K) //判断按下的K键
{
}
}

浙公网安备 33010602011771号