我有一个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();
}
但事情不会发生。
答案 0 :(得分:0)
您尚未使用Zoom变量对QGraphicsView执行任何操作。您需要致电:
ui->graphicsView->scale (Zoom, Zoom);
这将改变缩放级别。该方法通过Zoom的值缩放当前变换。你怀疑,你的代码并没有显示Zoom开始的内容,但是你希望它开始1。如果它从0开始,那么第一个Zoom级别为0.1,那么在第一个按下按钮时你的场景会变焦很远。
为了控制这一点,您可能需要使用ui-> graphicsView-> transform()来获取当前的变换矩阵,并查看当前缩放级别的m11和m22值。
同样,缩放方法会缩放当前转换,因此每次调用它时,都要从当前比例因子缩放,而不是原始值(默认情况下为1)表示没有缩放变换。)