Qt使用QLable显示图片随意拉伸大小时图片模糊问题解决 scaledcontents选项导致图片模糊

您所在的位置:网站首页 宾狗M6图像不清晰如何解决 Qt使用QLable显示图片随意拉伸大小时图片模糊问题解决 scaledcontents选项导致图片模糊

Qt使用QLable显示图片随意拉伸大小时图片模糊问题解决 scaledcontents选项导致图片模糊

2024-07-12 10:10| 来源: 网络整理| 查看: 265

第一步:在Qt的Designer中设计好排版(若使用纯C++写的代码,则根据以下步骤设置一下相应的属性即可,Designer内组件对应的属性在Qt提供的类中都可以找到对应的类属性与类方法)

 注意排版的一些小细节:

1、排版中多使用一些布局组件,使得画面更充盈更协调,同时运行后对窗体拉伸时,组件会随之一块变大变小。

2、对于同一个布局组件中的各个小组件,使用按比例排放选项,保证缩放时变化的同步性(纯代码编辑的Qt有提供右图中的一些可用布局类)

 

 第二步:设置QLabel标签的属性配置,将scaledcontents选中(图片拉伸选项),同样代码编写者创建标签对象后也会找到这个属性配置函数setScaledContents()      注意:下一步才是最关键的,很多给出的方法的到这就结束了,依然解决不了

 第三步:设置QLabel继承的基类QWidget中的属性sizePolicy和minimunSize,其中sizePolicy中水平和垂直策略都选择为Minimun(该选项的意思是大于等于最小值的缩放策略),同时在minimunSize中填写一个的最小尺寸,这里根据所需自己规定一个最小下限。这两个设置合起来也就是给标签规定了缩放过程中的一个最小尺寸。

 第四步:回到代码中,使用Qt给出的图片裁剪策略设置图片显示大小为标签的大小,并对图片做出裁剪处理,官方提供了三种裁剪方式 QPixmap pic;//图片 QSize size;//画框大小 //设置图片显示尺寸 size.setHeight(ui->label->height()); size.setWidth(ui->label->width()); //照片处理 pic=pic.scaled(size,Qt::IgnoreAspectRatio); //显示 ui->label->setPixmap(pic);

 到此,当窗口大小发生变化时,图片也会随之变化,且不会出现图片模糊的效果了!!!


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3