簡體   English   中英

如何使用Qt5繪制X11 Pixmap

[英]How to paint an X11 Pixmap using Qt5

我正在嘗試將X11 Pixmap繪制到QWidget

在過去使用Qt4.x時,我會利用QPixmap::fromX11Pixmap來創建可以在繪畫中輕松使用的QPixmap 但是,此功能已在Qt5中刪除,據我所知,該功能尚未在Qt Framework的其他位置提供。

雖然我已經能夠創建和分配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一起使用。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM