放大和缩小与qpushbutton
QGraphicsView Zooming in and out with qpushbutton
我有一个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();
}
您还没有使用Zoom变量对QGraphicsView做任何事情。您需要调用:
ui->graphicsView->scale (Zoom, Zoom);
这将改变缩放级别。该方法根据Zoom的值缩放当前转换。您的代码没有显示Zoom的起始值,但我猜想您希望它的起始值为1。如果它从0开始,那么第一个变焦级别是0.1,那么你的场景将在第一次按下按钮时变焦很远。
为了控制这一点,您可能需要使用ui->graphicsView->transform()来获取当前的转换矩阵,并查看当前缩放级别的m11和m22值。
同样,scale方法缩放当前转换,所以每次调用它时,您都是从当前缩放因子缩放,而不是原始值(默认值为1,表示没有缩放转换)。
相关文章:
- 不能在初始值设定项列表中将非常量表达式从类型 'int' 缩小到'unsigned long long'
- 我无法缩小此分段错误的原因
- 将stl字符串缩小到小于15个字符的容量
- OpenGL 和 GLM 矩阵无法正确扩展,总是按比例缩小
- 奇怪的缩小转换在 g++ 编译器中加倍到浮点警告
- 如何在不强制转换每个参数的情况下删除初始值设定项列表中从 int 到 char 的缩小转换?
- 将向量从 N1 缩小到 N2 项,而不触发默认构造函数并仅使用 move 语义
- std::map, std::unordered_map - 缩小初始值设定项列表中的转换范围
- 为什么显式构造被视为(隐式)缩小转换?
- 为什么C++在将浮点数转换为字符时没有显示缩小转换错误?
- 在单击 QPushButton 时调用带有参数的函数
- glpointsize() 无法缩小点
- 根据帧速率缩放/缩小数字
- 按下 QPushbutton 时将文本保存到文件
- QProcess无法通过QPushButton执行终端线路命令
- 错误:在 { } [-缩小] 中将"199"从"int"到"char&
- C(嵌入式):注释 FreeRTOS 的 RootTask 时代码大小不会缩小
- 缩小从double到float的转换
- 为什么 gcc 警告只针对统一初始化缩小转换范围?
- 放大和缩小与qpushbutton