Linux/QT 获取控件widget的屏幕坐标
(2011-12-12 14:02:07)
标签:
linuxqt获取控件widget屏幕坐标位置clienttoscreenit |
分类: 编程技术 |
方法一:
/// 获取窗口控件的屏幕位置,类似于ClientToScreen
QPoint GlobalPoint(widget->mapToGlobal(QPoint(0,0)));
方法二:
/// 获取窗口控件的屏幕位置
static QPoint getPos(QWidget* widget)
{
if (NULL == widget)
{
return QPoint(-1,-1);
}
float px = 0;
float py = 0;
QWidget *parent = widget;
QWidget *preParent= NULL;
do
{
QPoint p = parent->pos();
px += p.x();
py += p.y();
preParent = parent ;
parentw =
parent->parentWidget();
} while (NULL != parent);
QSize size =
preParent->frameSize();
QSize size2 =
preParent->size();
px = px + (size.width() - size2.width())/2;
py = py + (size.height() - size2.height() -
(size.width() - size2.width())/2);
QPoint pr(px, py);
return pr;
}
/// 获取窗口控件的屏幕位置,类似于ClientToScreen
QPoint GlobalPoint(widget->mapToGlobal(QPoint(0,0)));
方法二:
/// 获取窗口控件的屏幕位置
static QPoint getPos(QWidget* widget)
{
}