用Qt Creator 设计程序时,最方便的就是ui设计器,可以很容易的得到想要的布局。
但是这样自动布局带来的后果是很难知道窗口中某一部件在主窗口中的相对位置。
在处理子窗口鼠标事件时变的很麻烦。主窗口有菜单、工具条等,想用鼠标绘图,
把鼠标轨迹映射到窗口部件上,这些问题。
其实最主要的是获得窗口部件的起始点相对主窗口的位置。
例如:在主窗口拖入一个QScrollArea 在其上放一个QLabel用来显示鼠标事件。
可以在ui对象结构上看到如下结构。
大家知道,我们可以用pos()来获得某一窗口部件的起始点相对其父的位置。
那么,看结构可知,要获得scrollArea_2在主窗口(MainWindow)中的相对位置
即为:ui->scrollArea_2->pos()+ui->c