找回密码
 立即注册
收起左侧

在quick桌面程序,如何使用外部gl库来绘制一个子窗口

0
回复
6131
查看
[复制链接]
累计签到:8 天
连续签到:1 天
来源: 2018-6-21 14:44:22 显示全部楼层 |阅读模式
1Qter豆
    在做工具的时候,需要用到外部gl库来绘制工具中的子窗口,而不再使用Qt自带的gl层。对于widget开发就很容易,我只需要继承widget,在子类中重写void paintEvent(QPaintEvent *e) override; QPaintEngine *paintEngine() const override;这两个函数,然后在UI编辑器中就可以将这个子类当作widget来添加,并由外部gl库来绘制这个widget对应的子窗口。
    但是现在我使用quick框架,据我的了解,顶层窗口是qquickwindow子类,里面的任何可见都是qquickitem子类,当我继承QQuickItem,并重写QSGNode *updatePaintNode(QSGNode *, UpdatePaintNodeData *) override;之后,发现通过获取其window()->winId(),最终使用外部gl在进行像素格式设置SetPixelFormat的时候会失败,而使用widget框架就没有任何问题,请问有哪位对quick的绘制及窗口非常了解的大牛,怎么使用quik框架,由外部gl来绘制子窗口(比如编辑器中游戏引擎的场景)?

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

公告
可以关注我们的微信公众号yafeilinux_friends获取最新动态,或者加入QQ会员群进行交流:190741849、186601429(已满) 我知道了