加载中…
个人资料
  • 博客等级:
  • 博客积分:
  • 博客访问:
  • 关注人气:
  • 获赠金笔:0支
  • 赠出金笔:0支
  • 荣誉徽章:
正文 字体大小:

Linux/QT 获取控件widget的屏幕坐标

(2011-12-12 14:02:07)
标签:

linux

qt

获取

控件

widget

屏幕

坐标

位置

clienttoscreen

it

分类: 编程技术
方法一:
/// 获取窗口控件的屏幕位置,类似于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;
}

0

阅读 收藏 喜欢 打印举报/Report
  

新浪BLOG意见反馈留言板 欢迎批评指正

新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 产品答疑

新浪公司 版权所有