近日,工作中需Qt的普通窗口保持一定的宽高比(1366*768),本来以为是一件很简单的事情,结果几经波折,终于完成一个稍微满意的答案,在此分享一下解决过程。
首先,想到Qt本身应该已经提供此功能的,故而首先在Qt Assistant中的查找此种方法。找到Qt中的一个enum Qt::AspectRatioMode,官方解释This enum type defines what happens to the aspect ratio when scaling an rectangle。刚找到时甚慰,想着QWidget中设置一下此属性即可解决,但结果怎么也没找到可以设置此属性的地方,煞是苦闷!
紧接着,寻求谷歌的帮助,找到一些使用重写heightForWidth函数的方法,于是使用之。重写结果为
int QSpectRatio::heightForWidth(int width)
{
return 768.0 * width / 1366.0;
}
使用此方法时有两点注意事项: