700字范文,内容丰富有趣,生活中的好帮手!
700字范文 > qt将光标相对于桌面的位置转换为相对于窗口的位置

qt将光标相对于桌面的位置转换为相对于窗口的位置

时间:2019-10-03 03:21:56

相关推荐

qt将光标相对于桌面的位置转换为相对于窗口的位置

提要

鼠标光标获取的位置cursor().pos()是相对于整个屏幕坐标的,鼠标进入窗口的范围内,判断光标是否在窗口中某控件的范围内,就需先将相对于整个电脑屏幕的鼠标位置,转换为相对于当前程序的窗口的位置,然后判断这个坐标点是否在窗口控件的矩形中。

示例

直接上代码,判断鼠标是否进入到窗口上某一个控件中。

void largeScreenListWidget::enterEvent(QEvent *event){if (ui->BigScreenListwidget->rect().contains(mapFromGlobal(cursor().pos()))) {if(m_toolTip != nullptr){QString str = QString("大屏的行数%1,\r\n列数%2,\r\n大屏名称%3").arg(m_row).arg(m_col).arg(m_strName);m_toolTip->setToolTipInfo(str);m_toolTip->setGeometry(cursor().pos().x(),cursor().pos().y(),m_toolTip->size().width(),m_toolTip->size().height());m_toolTip->show();}}}

总结:

`判断鼠标是否进入控件BigScreenListwidget中,BigScreenListwidget为继承于QWidget的窗口类的一个子控件,进入指定控件BigScreenListwidget后就显示一个提示窗口。语句便为ui->BigScreenListwidget->rect().contains(mapFromGlobal(cursor().pos())),需要使用函数mapFromGlobal()将鼠标位置转换为相对于窗口的位置,通过contains()函数来判断这个点是否在指定控件的矩形中包含。

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。