में उपलब्ध नहीं है मेरे पास एक क्यूटी एप्लिकेशन है जो QWebChannel
का उपयोग करके वेबव्यू लॉन्च करता है।जावास्क्रिप्ट में स्क्रीन ऑब्जेक्ट QWebEnginePage
इन विचारों में, स्क्रीन के आकार के आधार पर विंडो को स्थिति/आकार बदलने के लिए जावास्क्रिप्ट कुछ सामान कर रहा है। screen
ऑब्जेक्ट इस तरह की जानकारी देना है। (screen doc)
लेकिन मेरे QWebEnginePage
में, स्क्रीन लोडिंग पूरी लोडिंग प्रक्रिया के दौरान खाली है।
यदि मैं पृष्ठ पर कहीं भी screen.height
प्राप्त करने के लिए बटन पर श्रोता डालता हूं, तो यह अब काम करता है।
//js local file called in html head
//screen = {}
document.addEventListener("load", function(event) {
//screen = {}
new QWebChannel(qt.webChannelTransport, function(channel) {
//screen = {}
//stuff
channel.object.myClass.show(function(res){ //Qt function that calls the show() method of the QWebEngineView
//screen = {}
});
});
document.getElementById("myBtn").addEventListener("click", function(){
console.log("height:" + screen.height); // screen: 1440
});
});
तो मेरे सवाल का, मैं कैसे screen
मूल्यों मेरी जावास्क्रिप्ट में कुछ बिंदु पर एक्सेस कर सकते हैं?
'लोड' ईवेंट क्या नहीं करना चाहिए? दस्तावेज़ के बाद ट्रिगर हो जाएं और इसके आश्रित संसाधन लोड हो गए हैं? मैं बस 'क्यूवेबेज' से माइग्रेट किया गया, जहां मुझे लगता है कि बाह्य वस्तुओं को तुल्यकालिक रूप से लोड किया गया था। हां मैं इन मानों को पुनर्प्राप्त करने के लिए 'Q_INVOKABLE' विधि का उपयोग कर सकता हूं। बस यह सुनिश्चित कर रहा हूं कि मैं पहले जैसा नहीं कर सकता। – hereismass
वैश्विक जावास्क्रिप्ट चर "विंडो" "लोड" ईवेंट को सक्रिय करता है, फिर 'QWebEnginePage' सिग्नल' loadFinished() 'सिग्नल को उत्सर्जित करता है और उसके बाद ही आप गुणों को पुनर्प्राप्त कर सकते हैं – IAmInPLS
मैंने लोड लोड के बाद' स्क्रीन 'मानों को पढ़ने का प्रयास किया है () 'सिग्नल, और' स्क्रीन' अभी भी उपलब्ध नहीं है। वास्तव में, 'DomContentLoaded' से पहले, 'लोडफिनिश()' जावास्क्रिप्ट ईवेंट' लोड' से पहले उत्सर्जित होता है। मैं आपकी सलाह का पालन करूंगा और इन मानों को प्राप्त करने के लिए 'Q_INVOKABLE' विधियों को लागू करूंगा। धन्यवाद :) – hereismass