QT判断界面当前点击的按钮和当前鼠标坐标

本文详细介绍了Qt中QObject::sender()函数的用法,包括如何通过此函数获取发送信号的对象及其名称,并展示了qobject_cast动态类型转换的应用。此外,还深入探讨了QMouseEvent中的坐标系统,解释了窗口坐标和全局坐标的区别及相互转换的方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.QObject::sender( ) 返回发送信号的对象的指针,返回类型为QObject* 。可使用qobject_cast动态类型转换成对应的发送信息的对象(对象类的基类中需要有QObject)。

QObject::objectName( ) 返回对象的名称(QString)

QPushButton*btn = qobject_cast<QPushButton*>(sender());//获取发射信号的对象
 if("按钮对象名"==btn->objectName()){//如果获取到对象
 //...
 }

2. QMouseEvent中两类坐标系统,一类是窗口坐标(相对坐标),一类是显示器坐标(全局坐标)

QPointQMouseEvent::globalPos();//窗口坐标,这个是返回鼠标的全局坐标
 QPointQCursor::pos()[static];//返回相对显示器的全局坐标
 QPointQMouseEvent::pos();//返回相对这个widget的位置
 QPointQWidget::pos();//这个属性获得的是当前目前控件在父窗口中的位置
 constQPointF&QMouseEvent::screenPos()const;//和QPoint QMouseEvent::globalPos() 值相同,但是类型更高精度的QPointF
 QPointQWidget::mapToGlobal(constQPoint& pos)const;//将窗口坐标转换成显示器坐标
 QPointQWidget::mapFromGlobal(constQPoint& pos)const;//将显示器坐标转换成窗口坐标
 QPointQWidget::mapToParent(constQPoint& pos)const;//将窗口坐标获得的pos转换成父类widget的坐标
 QPointQWidget::mapFromParent(constQPoint& pos)const;//将父类窗口坐标转换成当前窗口坐标
 QPointQWidget::mapTo(constQWidget* parent,constQPoint& pos)const;//将当前窗口坐标转换成指定parent坐标
 //也可使用:
 Qpoint pt=cursor().pos();//获取当前鼠标位置

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值