c++ - 从 C++ 代码绘制画布
问题描述
我的 qml 文件中有一个画布(http://doc.qt.io/qt-5/qml-qtquick-canvas.html)。
我在 c++ 中创建了一个“Backend”类并将其添加到 main.cpp 中qmlRegisterType<Backend>("de.xxx.backend", 1, 0, "Backend");
,然后我将这个类导入到 main.qml 中import de.xxx.backend 1.0
并添加了它的一个实例。
现在我想用我的 c++ 代码在这个画布上绘图。我想在我的类后端中有一个名为“draw()”的函数,在这个函数中我可以使用 drawRect() 或类似的函数。这可能吗?我怎样才能做到这一点?
我在这里先向您的帮助表示感谢!
解决方案
从 C++借鉴 QMLCanvas
是我一段时间以来听到的最糟糕的想法。
对于初学者 - 它没有给你带来任何好处。
其次 - 画布确实没有公共的 C++ API,使用私有的 API 是一个非常糟糕的主意。
最后——如果你非常喜欢从 C++ 中绘图,只需实现一个你使用 C++ APIQQuickPaintedItem
绘制的 QML 元素。QPainter
推荐阅读
- javascript - 为什么我无法从对象实例中删除 getter 函数?
- reactjs - 当父级注入具有不同值的道具时,子组件不会触发渲染
- sql-server - PowerShell 命令 Start-Process 未在远程执行
- mysql - 即使值为零,条形也会显示 - Google Charts
- gradle - 使用实现是否允许跳过排除消费者项目中的依赖项?
- python - Python中的多重继承问题
- snowflake-cloud-data-platform - 在 Account_usage 架构中的 storage_usage 视图显示所有仓库/项目的数据?
- python-3.x - Influxdb 表示未授权执行语句
- c++ - 是否可以重用 PoCo HTTPRequestHandler?
- react-native - 无法使用 PushNotificationIOS(react-native-ios)在任何应用程序状态下接收通知