在QML中缩放图像元素。不使用QImage::scaled(),QPixmap::scaled()。

在QML中缩放图像元素。不使用QImage::scaled(),QPixmap::scaled()。,image,qt,qml,Image,Qt,Qml,我正在尝试使用QML中的image元素实现图像的放大/缩小。 如果双击/收缩缩放,我希望修改像素比例 如果不使用QImage::scaled(),QPixmap::scaled(),我如何实现这一点。 基本上,我不想在我的应用程序中包含Qt逻辑 我想在下面的教程中看到类似的效果 但应用程序中没有Qt逻辑 我知道这不是最好的答案,但我不能写评论(我的重复次数不到50次…),但是放大/缩小qml很容易,如果你添加了鼠标ea,你也可以使用onClicked或onDoubleClicked。。。。这里

我正在尝试使用QML中的image元素实现图像的放大/缩小。 如果双击/收缩缩放,我希望修改像素比例

如果不使用QImage::scaled(),QPixmap::scaled(),我如何实现这一点。 基本上,我不想在我的应用程序中包含Qt逻辑

我想在下面的教程中看到类似的效果


但应用程序中没有Qt逻辑

我知道这不是最好的答案,但我不能写评论(我的重复次数不到50次…),但是放大/缩小qml很容易,如果你添加了鼠标ea,你也可以使用onClicked或onDoubleClicked。。。。这里有一个很有用的“收缩到缩放”示例。 您发布的ImageViewer示例具有打印保存等功能,您不想使用“qt逻辑”,因此我认为您需要使用“qt逻辑”。我会为每个特性编写一个类,并在需要的地方实现它。 首先 下面是一个保存和读取文件的(未测试)示例:

fileio.h

#ifndef FILEIO_H
#define FILEIO_H
#include <QObject>
#include <QVariant>
class FileIO : public QObject
{
Q_OBJECT
public:
Q_PROPERTY(QString source
           READ source
           WRITE setSource
           NOTIFY sourceChanged)
explicit FileIO(QObject *parent = 0);


Q_INVOKABLE QString source();
Q_INVOKABLE QVariant read();
Q_INVOKABLE bool write(const QVariant& data);

public slots:
void setSource(const QString& source) ;

signals:
void sourceChanged(const QString& source);
void error(const QString& msg);

private:
QString mSource;
};

#endif // FILEIO_H
我还没有测试过该代码,我希望它能有所帮助

为了获得更好的答案,请将你想做的事情张贴出来,例如保存、打印、任何过滤器

p、 我还将在qt中创建一个模型,并将其提交给qml


greez Matthias

我知道这不是最好的答案,但我不能写评论(我的重复次数不到50次…),但是放大/缩小qml很容易,如果你添加了鼠标earea,你也可以使用onClicked或onDoubleClicked。。。。这里有一个很有用的“收缩到缩放”示例。 您发布的ImageViewer示例具有打印保存等功能,您不想使用“qt逻辑”,因此我认为您需要使用“qt逻辑”。我会为每个特性编写一个类,并在需要的地方实现它。 首先 下面是一个保存和读取文件的(未测试)示例:

fileio.h

#ifndef FILEIO_H
#define FILEIO_H
#include <QObject>
#include <QVariant>
class FileIO : public QObject
{
Q_OBJECT
public:
Q_PROPERTY(QString source
           READ source
           WRITE setSource
           NOTIFY sourceChanged)
explicit FileIO(QObject *parent = 0);


Q_INVOKABLE QString source();
Q_INVOKABLE QVariant read();
Q_INVOKABLE bool write(const QVariant& data);

public slots:
void setSource(const QString& source) ;

signals:
void sourceChanged(const QString& source);
void error(const QString& msg);

private:
QString mSource;
};

#endif // FILEIO_H
我还没有测试过该代码,我希望它能有所帮助

为了获得更好的答案,请将你想做的事情张贴出来,例如保存、打印、任何过滤器

p、 我还将在qt中创建一个模型,并将其提交给qml

格里兹·马提亚斯

qmlRegisterType<FileIO, 1>("FileIO", 1, 0, "FileIO");
import FileIO 1.0
Rectangle{
id: someId
...
FileIO{
id: yourAccessToYourFileIOclass
}
}