當前位置:商標查詢大全網 - 彩票查詢 - Qt中QMouseEvent的功能壹個是pos,壹個是globalPos。我大概明白了,後者是相對於整個桌面而言的~ ~

Qt中QMouseEvent的功能壹個是pos,壹個是globalPos。我大概明白了,後者是相對於整個桌面而言的~ ~

妳理解反了。後者相對於窗口,前者相對於整個桌面。

創建壹個新的窗口程序,然後創建壹個QMenu對象。在構造函數中初始化。

menu = new QMenu(“菜單”,this);//菜單是在頭文件中聲明的

q action * action = new q action(tr(" 1111 "),this);//為了使目錄更大並且可見,我們添加了壹個操作。

菜單->;addAction(動作);

然後在mousePressEvent中查看效果。

void對話框::mousePressEvent(QMouseEvent *e)

{

如果(e-& gt;Button() == Qt::RightButton) //鼠標右鍵。避免無法關閉窗口。

{

QPoint p(0,0);

//菜單-& gt;exec(p);//對於測試,坐標是相對於桌面的

菜單->;exec(e-& gt;global pos());//坐標相對於窗口

//菜單-& gt;exec(e-& gt;pos());//坐標是相對於桌面的

}

}

如妳所見,無論窗口如何移動,pos菜單總是出現在同壹個地方。GlobalPos隨著窗口相對移動。