• 3604阅读
  • 2回复

Qt能改变窗体坐标轴的单位长度吗? [复制链接]

上一主题 下一主题
离线电动游星
 

只看楼主 倒序阅读 楼主  发表于: 2015-08-20
比如:有一个200*200的QWidget,我把他拉成实际大小为400*300,如何让该窗体的坐标系统还是200*200,只是坐标轴的单位长度改变?
scale函数是会改变坐标轴长度的(变成400*300),而不是单位长度

离线xiantong34

只看该作者 1楼 发表于: 2015-08-20
不行吧,都是像素计量的,做下换算吧,宽200变成了400,那实际的 值  180你输出时写90
离线电动游星

只看该作者 2楼 发表于: 2015-08-20
回 xiantong34 的帖子
xiantong34:不行吧,都是像素计量的,做下换算吧,宽200变成了400,那实际的 值  180你输出时写90 (2015-08-20 13:49) 

是这样的,我可以自己写个函数来映射,在resizeEvent里调整这个函数的X,Y方向的映射比例,给映射函数传入200*200坐标体系下的点,然后映射到新坐标体系下。
但这种方法会遇到这样的麻烦:假如我有个10秒的QAnimation动画,这个动画改变QObject的pos位置,在动画开始前映射好坐标。不动窗体的话能够正确到达,但如果我在第5秒时改变了窗体大小,那这个动画就的pos就不能正确到达了,因为这时X,Y的映射比例已经变了。
所以我想能真正在resizeEvent改变坐标轴单位长度就好了



快速回复
限100 字节
 
上一个 下一个