Qt 提供了 scene、view、item 框架,对于交互事件很多依赖于鼠标操作,本篇对此进行概括和总结。
Qt GraphicsView Event
Reply
Qt 提供了 scene、view、item 框架,对于交互事件很多依赖于鼠标操作,本篇对此进行概括和总结。
参见:https://doc.qt.io/qt-5/graphicsview.html
Qt 的图形视图,提供了一个界面用来管理大量2D图形项目;一个视图部件用来可视化这些图像项目,支持缩放和旋转。这个框架包括一个事件传播体系结构,该体系结构对场景中的项目进行精度和双精度交互功能。项目可以处理按键事件。鼠标按下、移动、释放和双击事件,他们还可以耿总鼠标的移动。图形视图使用BSP树提供了非常快速的项目检索功能,因此它可以实时可视化大型场景,甚至包括数百万的项目。
仿射变换 得概念如何理解?
几个名字先熟悉一下:
矩阵相关名词:
Qt 相关对象
QMatrix 结构
QMatrix::QMatrix(qreal m11, qreal m12, qreal m21, qreal m22, qreal dx, qreal dy)
m11 | m12 | 0 |
m21 | m22 | 0 |
dx | dy | 1 |
x' = m11*x + m21*y + dx y' = m22*y + m12*x + dy
QMatrix translationMatrix(1, 0, 0, 1, 50.0, 50.0); QMatrix rotationMatrix(cosa, sina, -sina, cosa, 0, 0); QMatrix scalingMatrix(0.5, 0, 0, 1.0, 0, 0); QMatrix matrix; matrix = scalingMatrix * rotationMatrix * translationMatrix;
QTransform 结构
延伸阅读
C:/Qt/Qt5.12.7/Tools/QtCreator/share/qtcreator/templates/wizards/RibbonApplication/devmachines32x32.png C:/Qt/Qt5.12.7/Tools/QtCreator/share/qtcreator/templates/wizards/RibbonApplication/main.cpp C:/Qt/Qt5.12.7/Tools/QtCreator/share/qtcreator/templates/wizards/RibbonApplication/mainwindow.cpp C:/Qt/Qt5.12.7/Tools/QtCreator/share/qtcreator/templates/wizards/RibbonApplication/mainwindow.h C:/Qt/Qt5.12.7/Tools/QtCreator/share/qtcreator/templates/wizards/RibbonApplication/mainwindow.ui C:/Qt/Qt5.12.7/Tools/QtCreator/share/qtcreator/templates/wizards/RibbonApplication/project.pro C:/Qt/Qt5.12.7/Tools/QtCreator/share/qtcreator/templates/wizards/RibbonApplication/wizard.xml
Qt 可以调用 dll, 插件可以dll形式存在。但是插件的话,要有个 interface 将 app 和 plugin 耦合起来。(此处说 dll 是特指在 Win 平台下)
应用场景:将类、函数封装成dll,供调用。
在设计某些自定义控件,可以将现有的控件进行提升。是一种代码级别的“复用”方式。特别适合对已有控件进行适当改造。参见《如何添加自定义的Qt类》
此种方式区别于完全自定义的designer部件,参见 《一本正经建立 Qt 自定义设计师部件 Custom Designer Widget》
扩展阅读