|
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来绘制子窗口(比如编辑器中游戏引擎的场景)?
|
|