Необходимость сглаживания для создания для fillmode изображения
У меня есть фрагмент кода в QML:
Image {
anchors.rightMargin: 10
anchors.leftMargin: 10
anchors.bottomMargin: 10
anchors.topMargin: 10
anchors.fill: parent
source: "Google Chrome Icon.png"
fillMode: Image.PreserveAspectFit
}
Изображение автоматически растягивается вместе с окном. Но метод растяжения не сглажен, поэтому уродливый результат:
Изображение хрома http://img838.imageshack.us/img838/667/unantialiasedchrome.png
Есть ли какой-нибудь метод, чтобы сделать результат большим?2 ответа:
Как чистое решение QML вы можете просто установить
smooth
свойство элементаImage
кtrue
: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 }
Вы можете включить сглаживание, включив его в
QDeclarativeView
,QDeclarativeView view; view.setRenderHints(QPainter::Antialiasing | QPainter::SmoothPixmapTransform); view.setResizeMode( QDeclarativeView::SizeRootObjectToView ); view.setSource(QUrl("qrc:/main.qml")); view.show();
Как бы то ни было , чтобы изображение выглядело хорошо при растяжении, я предложу вам использовать изображение svg вместо изображения png.