一、Qt
中的坐标系统
1、Qt
中的坐标系
- 水平向右为
X
轴正方向 - 竖直向下为
y
轴正方向
2、窗口坐标系
geometry
下的坐标系为不带窗口边框及标题情况下的坐标系frameGeometry
下的坐标系为整个窗口,包含窗口标题和边框下的坐标系,- 具体如下图所示的
Window Geometry
图
二、鼠标事件中的坐标
1、触发鼠标的对应事件时,鼠标的坐标
点击鼠标后所获取的坐标是其相对坐标,即点击的位置相对于其直接父控件的坐标值,而非相对于主窗口或屏幕的坐标
// MyLabel为自定义的QLabel控件
void MyLabel::mousePressEvent(QMouseEvent *ev)
{
//该坐标是直接相对于其父控件的,在此为QLabel(tmp,tmp1,tmp2值相同)
int tmp = ev->y();
int tmp1 = ev->localPos().y();
int tmp2 = ev->pos().y();
//该坐标是相对于主窗口界面的坐标(tmp3,tmp4的值相同)
int tmp3 = ev->y() + this->y();
int tmp4 = ev->windowPos().y();
//该坐标是相对于显示器屏幕的坐标,为全局坐标(tmp5,tmp6的值相同)
int tmp5 = ev->screenPos().y();
int tmp6 = ev->globalPos().y();
}