2010-08-20 16 views
6

मैं क्यूटी के लिए नया हूं।क्यूटीवेबकिट: कंसोल एप्लिकेशन

मैं एक कंसोल एप्लिकेशन बना रहा हूं और मुझे बहुत सारे वास्तविक विश्व HTML पृष्ठों को संसाधित करने की आवश्यकता है। स्पष्ट रूप से कट एपीआई और आसान उपलब्धता के कारण QtWebkit एक आसान विकल्प के रूप में आता है।

मैंने दस्तावेज़ों की जांच की और वे कहते हैं कि मैं QWebView :: load() का उपयोग कर पृष्ठों को लोड कर सकता हूं। लेकिन मैं एक कंसोल एप्लिकेशन बना रहा हूं और मैं विजेट का उपयोग नहीं कर सकता। मुझे त्रुटि मिलती है: ?

QWidget: Cannot create a QWidget when no GUI is being used 
The program has unexpectedly finished. 

तो मैं कंसोल एप्लिकेशन में QtWebkit का उपयोग कर HTML पृष्ठों को कैसे संसाधित कर सकता हूं।

उत्तर

9

QtWebkit विजेट-कम वातावरण में उपयोग किया जा सकता है, लेकिन QCoreAplication के साथ निष्पादित नहीं किया जा सकता है।

समाधान निष्पादित करने के लिए एक नकली एक्स सर्वर का उपयोग करना है।

स्थापित Xvfb और उसके बाद:

xvfb-run --server-args="-screen 0 1024x768x24" ./framecapture google.cat google.png 

पीडी: डॉक्स से framecapture वेबकिट उदाहरण का उपयोग: http://doc.qt.io/archives/qt-4.7/webkit-framecapture.html

6

QWebPage विजेट-कम वातावरण में उपयोग किया जा सकता है।

एक पृष्ठ लोड करने के लिए, इस

QWebPage page; 
QUrl url = ...; 
page.mainFrame()->load(url); 

की तरह कुछ करने के डोम पेड़ तक पहुँच प्राप्त करने के लिए आपको QWebFrame::documentElement() उपयोग कर सकते हैं। इसका उपयोग कैसे करें API देखें।

+1

@Job मैं इसे करने की कोशिश की और यह काम नहीं करता। मुझे वही त्रुटि देता है जो जीयूआई मौजूद नहीं है। – Xolve

+0

http://pastebin.com/aC8mbDTU – Xolve

+0

@Xolve: हम्म यह बहुत अजीब है ... इसे [डॉक्स] (http://doc.trolltech.com/latest/qwebpage.html#details) के अनुसार काम करना चाहिए। मुझे लगता है कि आप जो चाहते हैं उसे करने का सबसे आसान तरीका QtWebKit के माध्यम से DOM पेड़ प्राप्त करने के बजाय सीधे [QtXml] (http://doc.trolltech.com/latest/qtxml.html) मॉड्यूल का उपयोग करना है। – Job

संबंधित मुद्दे