Qt5.5图像大小调整抖动且不流畅



我正在学习Qt5。我从一个非常简单的QtQuick QML应用程序开始,只有一个图像填充背景。它可以工作,但是当我调整窗口大小(Windows 8.1 64位)时,调整大小并不流畅。存在大量抖动,有时甚至存在明显的滞后。它应该为此使用 OGL 吧?

这是我的代码:

import QtQuick 2.5
import QtQuick.Controls 1.4
import QtQuick.Dialogs 1.2
ApplicationWindow {
visible: true
width: 640
height: 480
title: qsTr("Hello World")
menuBar: MenuBar {
    Menu {
        title: qsTr("File")
        MenuItem {
            text: qsTr("&Open")
            onTriggered: console.log("Open action triggered");
        }
        MenuItem {
            text: qsTr("Exit")
            onTriggered: Qt.quit();
        }
    }
}
MainForm {
    anchors.fill: parent
}
}

import QtQuick 2.5
import QtQuick.Controls 1.4
import QtQuick.Layouts 1.2
Item {
visible: true
width: 640
height: 480
Image {
    id: image1
    sourceSize.height: 687
    sourceSize.width: 1280
    smooth: false
    anchors.fill: parent
    source: "images/showcase1280.jpg"
}
}

苏吉特斯赞赏。

它不顺利。

图像具有一个名为 smooth 的属性,其目的是保存:

[...]图像在缩放或变换时是否被平滑过滤。

另一个有趣的属性是 mimap ,文档说:

此属性保存图像在缩放或转换时是否使用 mipmap 筛选。

与平滑相比,Mipmap 过滤在缩小时提供更好的视觉质量,但可能会降低性能(在初始化图像和渲染期间)。

请注意,在代码中设置:

smooth: false

如果您想要平滑更改,也许您做错了,请尝试将上述属性设置为 true。

我不是通过解决你的任务来假装。但我认为您可以使用动画作为变体:

import QtQuick 2.4
import QtQuick.Controls 1.3
import QtQuick.Layouts 1.1
Item {
    Image {
        anchors.centerIn: parent
        width: parent.width
        height: parent.height
        sourceSize.height: 1000
        sourceSize.width: 2000
        source: "https://upload.wikimedia.org/wikipedia/ru/archive/8/88/20090512220306!Qt_logostrap_CMYK.png"
        smooth: false
        fillMode: Image.Stretch
        asynchronous: true
        Behavior on width {
            animation: whAnimation
        }
        Behavior on height {
            animation: whAnimation
        }
        NumberAnimation {
           id: whAnimation
           duration: 150
       }
    }
}

相关内容

  • 没有找到相关文章

最新更新