QT事件

QT事件总要分为:

一。鼠标事件。

void mousePressEvent(QMouseEvent *e);  //鼠标按下事件,能过滤到鼠标按下那时的状态,里面可以再写事件处理机制。

void mouseMoveEvent(QMouseEvent *e); //能监控到鼠标移动状态。

void mouseReleaseEvent(QMouseEvent *e); //按鼠标按下后,还原时,可以监控到。

void mouseDoubleClickEvent(QMouseEvent *e); //双击鼠标事件

这几个函数,都是重写父类的, 父类里面为虚函数, 可以实现多肽。

重写时,可以实现对应状态下面的功能。

void Test::mousePressEvent(QMouseEvent *e)

{

if(e->button() == Qt::LeftButton) { //当按下的是鼠标左键时处理以下功能。

function();

} else if (e->button == Qt::RightButton) {//当按下的是鼠标左键时处理以下功能。

function2();

}

}


二。键盘事件。

void keyPressEvent(QKeyEvent *e);

键盘事件是可以监控到按下的是哪一个键的。

void Test::keyPressEvent(QKeyEvent *e)

{

if(e->key() == Qt::Key_Up) //如果按下的是上键。

{

function();

}

}


三,事件过滤器。

事件过滤器首先是需要在某个控件上面安装的, 如果不安装是没法使用的,或者说是监控不到这个控件的。

安装方法是:

控件名->installEventFilter(this);

安装之后是需要一个函数一直监控的, 这个函数就是:

bool eventFilter(QObject* watched, QEvent *event);

里面的watched 代表着监控的对像, 也就是我们安装了过滤器的控件, event代表着过滤的事件。

如:

bool Test::eventFilter(QObject* watched, QEvent *event)

{

if(watched == ui->label) {

if(event->type() == QEvent::MouseButtonPress) {

QMouseEvent *mouseEvent = QMouseEvent*(event);

if(mouseEvent->button() == Qt::RightButton) {

function();

}

}

}









评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小K小Q

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值