2013-07-04 7 views
11

में QPixmap से HBITMAP प्राप्त करना अब QPixmap :: toWinHBITMAP() को बहिष्कृत कर दिया गया है, मुझे QPixmap (या QImage) से HBITMAP प्राप्त करने का कोई तरीका नहीं मिल रहा है।QT5 (विंडोज)

गुगलिंग, मैंने पाया कि qt_pixmapToWinHBITMAP() नामक एक फ़ंक्शन है जो मुझे लगता है कि मुझे क्या करना चाहिए, लेकिन मुझे यह नहीं मिल सकता कि मुझे कौन सा मॉड्यूल सक्षम करना चाहिए- अगर कोई भी मेरे .pro फ़ाइल में या मुझे कौन सा शीर्षलेख शामिल करना चाहिए इसका इस्तेमाल करें, या शायद कुछ और।

कारण मुझे एचबीआईटीएमएपी की आवश्यकता है वीएफडब्ल्यू का उपयोग कर एक वीडियो बनाना है। बेशक, मैं केवल क्यूटी का उपयोग कर ऐसा करने में सक्षम होना पसंद करूंगा। QtMultimedia मॉड्यूल है, लेकिन जहां तक ​​मैं कह सकता हूं कि यह वीडियो निर्यात नहीं करता है, तो मुझे लगता है कि मैं सीधे विंडोज़ एपीआई का उपयोग कर अटक गया हूं।

किसी भी मदद की सराहना की जाएगी।

+0

हाय, क्या आपको कोई विकल्प मिला? मैंने अभी क्यूटी 5 में अपग्रेड किया है और मेरे 'विंहिकॉन' और 'सेWinHBITMAP' कॉल के साथ एक ही समस्या का सामना किया है .. – Dalamber

उत्तर

10

मुझे यह मिला!

सभी मैं जरूरत QtWinExtras

था

http://qt.gitorious.org/qt/qtwinextras

मेरे कोड इस तरह दिखता है:

#define WIN32_LEAN_AND_MEAN 
#include <windows.h> 
#include <qt_windows.h> 
#include <QtWinExtras/QWinFunctions> 


... 
QPixmap pix(QSize(w,h)); 
... 
HBITMAP hbm = QWinExtras::toHBITMAP(pix); 
... 
::DeleteObject(hbm); 

अगर मैं उन सभी शीर्ष लेख शामिल करने की जरूरत है मैं नहीं जानता, लेकिन यह काम करता है मेरे लिए।

4

QtWinExtras आवश्यक नहीं है। बस qt_pixmapToWinHBITMAP() का उपयोग करें, जैसा कि QtWinExtras करता है।

यह घोषित आपके शामिल होने के तुरंत बाद:

और बस का उपयोग करें। उदाहरण के लिए, यदि आप इसे क्यूआरसी संसाधनों से पुनर्प्राप्त करना चाहते हैं:

QPixmap pixmap(":/image.bmp"); 
HBITMAP hBitmap = qt_pixmapToWinHBITMAP(pixmap); 
संबंधित मुद्दे