gpt4 book ai didi

qt - 在QGraphicsView中设置图片的缩小限制

转载 作者:行者123 更新时间:2023-12-02 06:06:56 25 4
gpt4 key购买 nike

我正在使用 QGraphicsView 缩放标签上的图像。但是当我缩小时,我想为缩小设置一个特定的限制。我正在使用以下代码

scene = new QGraphicsScene(this);
view = new QGraphicsView(label);
QPixmap pix("/root/Image);
Scene->addPixmap(pixmap);
view->setScene(scene);
view->setDragMode(QGraphicsView::scrollHandDrag);

在轮子事件的槽位

void MainWindow::wheelEvent(QWheelEvent *ZoomEvent)
{
view->setTransformationAnchor(QGraphicsView::AnchorUnderMouse);
double scaleFactor = 1.15;
if(ZoomEvent->delta() >0)
{
view->scale(scaleFactor,scaleFactor);
}
else
{
view->scale(1/scaleFactor,1/scaleFactor);
}
}

我希望图像在一定程度后不应缩小。我应该怎么办?我尝试设置 QGraphicsView 的最小尺寸,但这没有帮助。

谢谢:)

最佳答案

也许这样的事情会有所帮助:

void MainWindow::wheelEvent(QWheelEvent *ZoomEvent)
{
view->setTransformationAnchor(QGraphicsView::AnchorUnderMouse);
static const double scaleFactor = 1.15;
static double currentScale = 1.0; // stores the current scale value.
static const double scaleMin = .1; // defines the min scale limit.

if(ZoomEvent->delta() > 0) {
view->scale(scaleFactor, scaleFactor);
currentScale *= scaleFactor;
} else if (currentScale > scaleMin) {
view->scale(1 / scaleFactor, 1 / scaleFactor);
currentScale /= scaleFactor;
}
}

正如您所看到的,这个想法是缓存当前的比例因子,并且在它小于某个限制的情况下不缩小。

关于qt - 在QGraphicsView中设置图片的缩小限制,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19496948/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com