qml window的screen指定

一般的桌面应用基本都会有两个窗口,登录窗口和主程序窗口,比如像微信,飞书等等都是。用Qt  Quickk开发应用,有时就会遇到当电脑存在扩展屏幕时,登录弹窗和主窗体显示不在同一屏幕上,给人一种不够专业的体验,怎么办呢?

更严重的时,如果两个屏幕的显示比例(一个100%,一个150%)不一致时,效果就很奇怪了

正常而言,qml 中以rootItem 来使用window {} 时,当前光标在那个屏幕,窗口就会显示到哪个屏幕上,但如果以loader {} 加载Component{}的方式,例如:

这种方式,window{} 会以设备的主显示器为其screen,所获取的显示比例也是主显示器的,但该窗口却是展现在光标所在的屏幕上,如果主屏幕的显示比例为150%,而光标所在的屏幕显示比例为100%,这个时候,该windows的大小为其基本大小(100%),但一拖动,就会变成其原来大小的150%……

也行Loader本身就这么设计的吧,无所谓了

解决方案就是Windows{} 的screen属性:

具体代码如下:

该实例中,loader加载的是登录窗口, window.screen指的是rootItem的屏幕实例

这样一来,登录弹窗与主窗体就能保持在同一个屏幕上,大小显示也不会有问题

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值