我正在编写一个适用于Mac和Win的GUI应用程序,并且有一个小问题,我不知道如何解决。 在我的应用程序中,我有一个小的(250 x 250 px)预览窗口(让我们称之为SW)放置图像。图像可以比SW大得多。某处我有一个滑块,可以实现SW内部图像的缩放功能。我的主要问题是在此图像上实现缩放功能。
输入后我有:
它应该像放大图像处理程序一样工作。当我们改变我们的缩放值时,图像相对于视口中心和图像内部的位置变得更小或更大。我们可以在视口内移动图像。 为了正确实现该问题,我们需要计算视图内的图像大小和位置。我已经写了一些实现图像大小修改的“算法”。 看起来像是:
float one = (source_original_size - thumbnail_size) / 100;
int bigger_side_size = qRound((100-value) * one) + thumbnail_size;
但我无法想象如何计算放大图像的场景位置。
有人可以帮我提出想法吗?
如果重要的话,我正在使用Qt框架和QGraphicsView
,QGraphicsScene
和QGraphicsPixmapItem
。