控件坐标位置自适应算法

按照俺以前的做法是在gimp中算好背景图片资源的坐标及尺寸,但是这样做也不好,针对窗口的不同大小,不同的分辨率,控件就偏多很历害。

但是如果限制窗口不能调节大小,也不好,毕竟在大分辨率的屏幕屏上,客户会不满意的。

由于俺使用的是png图片,不是svg,所以放大会有失帧现在,所以俺不让它放大。

只是如果窗口大了的话,就居中显示,以前该背景图片上的所有的控件坐标都是绝对坐标,所以当窗口改变时,计算好坐标再绘制背景图片,计算方法如下:

x= (window width - background image width) /2

y=(window height - background image height) /2

这样就相当于改变了绘制背景图像时的左上角坐标,但是图像尺寸还是按照以前的,不缩放。

以前的控件坐标是绝对于背景图片的,所以现在是背景图片偏移了坐标,

故对于控件的定位可以在resizeEvent()事件中,对控件坐标重新定位即可。

它的最新的绝对坐标计算方法是

绝对坐标+偏移量。

偏移量应该使用背景图片的偏移量。

若以前为

this->m_lineEditOut->setGeometry(62,81,31,10);

则现在应该变为

    qint32 tOffsetX=(this->size().width()-this->m_backgroundPixmap.width())/2;
    qint32 tOffsetY=(this->size().height()-this->m_backgroundPixmap.height())/2

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值