如何使用Qt5绘制X11像素图



我试图绘制一个X11像素图到QWidget

在过去使用Qt4。x我将利用QPixmap::fromX11Pixmap创建一个QPixmap,我可以很容易地在绘画中使用。然而,该功能已在Qt5中删除,据我所知,该功能尚未在Qt框架的其他地方提供。

虽然我已经能够创建和分配X11 Pixmap,但我还没有找到任何解决方案来执行绘画。任何建议/解决方案欢迎!

我有同样的问题,没有找到任何答案。在做了一些技巧之后,我找到了这个解决方案。

// Initialize your X11 enviroment.
Display* display ...
Pixmap pixmap ... 
/* Do your pixmap drawing HERE */
// Make sure all drawing have been done
XFlush(display);
// Convert your Pixmap to XImage
XImage *image = XGetImage(display, pixmap, 0, 0, width, height, 0xFFFFFFFF, ZPixmap);
// Convert XImage to QImage
QImage tempImage = qimageFromXImage(image);
// Destroy temporal XImage
XDestroyImage(image);
// Finally create a QPixmap
QPixmap finalPixmap = QPixmap::fromImage(tempImage);

qimageFromXImage(...)函数的代码可以在https://github.com/adobe/webkit/blob/master/Source/WebCore/plugins/qt/QtX11ImageConversion.h上找到您可以将头文件和实现复制到您的源树中。

问题解决了!可与QQuickPaintedItem或QGraphicsItem一起使用

相关内容

  • 没有找到相关文章

最新更新