编写一款2D CAD/CAM软件(八)窗口缩放

当用户对窗口尺寸进行调整时,将引起resize事件的传递。

因此,这里需要做以下事情:

  1. 将QMdiArea的resize event传递给子窗口QMdiSubWindow,这里需要重载QMdiArea窗口;
  2. 将QMdiSubWindow(已经重载为JViewWidget)的resize event传递给视图类JView,并根据新的尺寸来计算几何图形坐标系和视图坐标系的偏移&缩放比例;
  3. 在上一篇中讲到,在视图类JView中使用了图像缓存buffer_对象作为画布来绘制几何图形,而实质上QPainter可以直接在JViewWidget上绘制图形,因此这里将移除掉图像缓存对象buffer_.

CMakeLists.txt

// j-main/prj/CMakeLists.txt 

QT5_WRAP_CPP(
        MOC_FILES
        ../../include/j-view/j-view.h
        ../src/mainwindow.h
        ../src/j-view-widget.h
        ../src/j-mdi-area.h
)

add_executable(JCad
        ${MOC_FILES}
        ../src/main.cpp
        ../src/mainwindow.cpp
        ../src/mainwindow.h
        ../src/mainwindow.ui
        ../src/j-view-widget.cpp
        ../src/j-mdi-area.cpp
)

注意在j-main/prj/CMakeLists.txt文件中增加QMdiArea派生类相关文件。

j-mdi-area.h

#pragma once

#include <Q
  • 13
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Arthur...J

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值