Qt 控件自适应电脑缩放

有多种方式可以进行自适应,先总结以下几种方式:

方式一

如果存在布局,可通过设置layoutStrech对控件进行比例设置。设置后,控件将会根据比例进行显示。
如下图,设置1,1,那么当布局放大或者缩小后,两个控件将会一直保持分别占有布局一半的大小。
在这里插入图片描述

方式二

通过代码获取当前电脑缩放倍数,并对控件大小根据倍率进行调整。
传入控件100%下的大小,得到当前电脑缩放倍数下的像素大小。再对控件设置宽度和高度
在这里插入图片描述

方式三

新版本的Qt比如Qt5.14修正了对高分屏的处理支持不是整数的缩放。在mian.cpp中增加以下两句代码
qputenv(“QT_ENABLE_HIGHDPI_SCALING”, “1”);
QGuiApplication::setHighDpiScaleFactorRoundingPolicy(Qt::HighDpiScaleFactorRoundingPolicy::PassThrough);

在这里插入图片描述

QT提供了一些方法可以实现窗口自适应缩放: 1. 使用布局管理器:QT中提供了很多布局管理器,比如QVBoxLayout、QHBoxLayout、QGridLayout等。使用布局管理器可以将控件自动排列并随着窗口的大小调整而自适应缩放。 2. 设置窗口的最小尺寸和最大尺寸:可以通过设置窗口的最小尺寸和最大尺寸,当用户调整窗口大小时,窗口会根据最小尺寸和最大尺寸进行自适应缩放。 3. 重写resizeEvent()函数:可以在resizeEvent()函数中实现自适应缩放。当窗口大小改变时,该函数会被调用。 下面是一个简单的例子,展示如何使用布局管理器实现窗口自适应缩放: ``` #include <QtWidgets/QApplication> #include <QtWidgets/QWidget> #include <QtWidgets/QVBoxLayout> #include <QtWidgets/QPushButton> int main(int argc, char *argv[]) { QApplication app(argc, argv); QWidget *widget = new QWidget; QVBoxLayout *layout = new QVBoxLayout(widget); QPushButton *button1 = new QPushButton("Button 1"); QPushButton *button2 = new QPushButton("Button 2"); layout->addWidget(button1); layout->addWidget(button2); widget->show(); return app.exec(); } ``` 在上面的代码中,创建了一个QWidget对象作为窗口,然后创建了一个QVBoxLayout对象作为布局管理器,并将其设置为QWidget对象的布局管理器。接着创建了两个QPushButton对象,并将它们添加到QVBoxLayout对象中。最后调用show()函数显示窗口。当用户调整窗口大小时,两个按钮会自动调整大小并重新排列。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值