关于Qt窗口保持宽高比的研究

本文详细介绍了如何在Qt中让窗口保持1366x768的宽高比。通过尝试设置Qt::AspectRatioMode未果,作者转向重写heightForWidth函数和resizeEvent事件,最后通过去除窗口边框并监听鼠标事件,实现了自定义的窗口大小调整,确保了窗口始终按所需比例缩放。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

近日,工作中需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;

}

使用此方法时有两点注意事项:

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值