2017-09-05 355 views
-1

我正在使用GridView创建一个画廊我从我的机器上的某个文件夹显示的图像。 图像具有不同的宽*高比。很少有肖像图像,其中图像的高度比宽度大3倍。有些图像是宽度约为高度3倍的地方。一些图像被平方。如何在不影响宽高比的情况下将纵向和横向图像显示在网格上的正方形上?

问题与我的画廊是我的每个Image组件的每个Image组成部分,你可以看到下面。这使得横向图像&得到错误拉伸,因为网格中的每个块都是正方形。从而导致图像的高宽比偏斜。

问题: 我怎么能保证我同时显示人像&景观图片到我的正方形无歪斜宽高比?我正在看一些广场上的一些黑色/灰色背景,在肖像或风景图像上留下空白?但可能还有其他的技巧。

代码:

import QtQuick 2.5 
import Qt.labs.folderlistmodel 2.1 
import QtQuick.Controls 1.1 
import QtQml.Models 2.1 

GridView { 
    cellHeight: height/2 
    cellWidth: width/2 
    clip: true 

    FolderListModel { 
    id: dir_model 
    folder: "/path/to/images/folder" 
    nameFilters: ["*.png"] 
    } 

    Component { 
    id: file_delegate 

    Image { 
     width: (parent.width)/2 
     height: (parent.width)/2 
     source: fileURL 
    } 
    } 

    model: dir_model 
    delegate: file_delegate 
} 
+1

有无您尝试使用'fillMode:Image.PreserveAspe ctFit'在图像上? – Macias

+0

完美。那是我需要的 –

回答

1

只需设置ImagefillMode属性Image.PreserveAspectFit 正如医生说:

图像均匀缩放以适应不裁剪

相关问题