2012-04-18 23 views
3

我有一段代碼在QML:需要用於抗混疊的圖像設爲Qml FILLMODE

Image { 
    anchors.rightMargin: 10 
    anchors.leftMargin: 10 
    anchors.bottomMargin: 10 
    anchors.topMargin: 10 
    anchors.fill: parent 
    source: "Google Chrome Icon.png" 
    fillMode: Image.PreserveAspectFit 
    } 

的圖像被自動地與窗口伸展。但拉伸方法沒有抗鋸齒,因此,醜陋的結果:

chrome image http://img838.imageshack.us/img838/667/unantialiasedchrome.png

有沒有使結果有較大的任何方法?

回答

5

作爲一個純粹的QML解決方案,您可以簡單地設置Image元素的smooth propertytrue

import QtQuick 1.0 

Image { 
    smooth: true // smoother image 
    anchors.rightMargin: 10 
    anchors.leftMargin: 10 
    anchors.bottomMargin: 10 
    anchors.topMargin: 10 
    anchors.fill: parent 
    source: "Google Chrome Icon.png" 
    fillMode: Image.PreserveAspectFit 
} 
+0

謝謝你,你是男人。 – herophuong 2012-04-19 13:22:34

+0

Qt docs說關於平滑:'默認情況下,這個屬性設置爲true .' – 2016-02-04 09:09:30

4

可以通過啓用它QDeclarativeView啓用抗鋸齒,

QDeclarativeView view; 
view.setRenderHints(QPainter::Antialiasing | QPainter::SmoothPixmapTransform); 
view.setResizeMode(QDeclarativeView::SizeRootObjectToView); 
view.setSource(QUrl("qrc:/main.qml")); 
view.show(); 

如何過使圖像看起來不錯,同時拉伸,我會建議你使用的不是png圖片SVG圖像。