QGraphicsView使用qpushbutton进行放大和缩小

时间:2016-10-14 15:41:28

标签: c++ qt qt-creator

我有一个QGraphicsScene,我想用qpushbutton进行缩放(进出),我有这个代码:

void fonction(){
        Scene = new QGraphicsScene(this);
        ui->graphicsView->setScene(Scene);
        QPen Pen ;
        QBrush Brush(Qt::red) ;
        Pen.setWidth(5);
        ellipse = Scene->addEllipse(2,2,30,30,Pen,Brush);
}

怎么做? 我试过了:

void HomePage::on_pushButton_4_clicked()
{
    if(Zoom!=10 ){
        Zoom=Zoom+0.1 ;
       }
    ui->graphicsView->show();

}

但事情不会发生。

1 个答案:

答案 0 :(得分:0)

您尚未使用Zoom变量对QGraphicsView执行任何操作。您需要致电:

ui->graphicsView->scale (Zoom, Zoom);

这将改变缩放级别。该方法通过Zoom的值缩放当前变换。你怀疑,你的代码并没有显示Zoom开始的内容,但是你希望它开始1。如果它从0开始,那么第一个Zoom级别为0.1,那么在第一个按下按钮时你的场景会变焦很远。

为了控制这一点,您可能需要使用ui-> graphicsView-> transform()来获取当前的变换矩阵,并查看当前缩放级别的m11和m22值。

同样,缩放方法会缩放当前转换,因此每次调用它时,都要从当前比例因子缩放,而不是原始值(默认情况下为1)表示没有缩放变换。)