2012-11-02 18 views
5

में एक यूआरएल खोलें मेरे क्यूटी एप्लिकेशन के भीतर से, मैं एक ही ब्राउज़र टैब/विंडो में बार-बार यूआरएल खोलना चाहता हूं। ("ताज़ा" इस टैब को प्रोग्राम के रूप में की तरह)किसी निश्चित ब्राउज़र टैब/विंडो

QDesktopServices::openUrl(QUrl("http://www.domain.tld")); 

का उपयोग करते हुए प्रत्येक कॉल के लिए एक नया टैब/विंडो खोलता है। क्या कहीं "लक्ष्य =" पैरामीटर जोड़ने की संभावना है?

+0

हाय एलवुड, आप कभी भी इस के लिए एक समाधान मिला? मेरे पास एक ही समस्या है: http://stackoverflow.com/questions/15116760/open-a-web-page-from-a-desktop-app-repeatedly-in-same-window – sipi

+0

सिपिक्ल्स: क्षमा करें, नहीं। ऐसा लगता है कि यह संभव नहीं है। मैं '<मेटा http-equiv = "रीफ्रेश" सामग्री = "5"> 'के साथ एक स्थानीय HTML फ़ाइल बनाने के बारे में सोच रहा था और फिर मांग पर इस फ़ाइल को ओवरराइट कर रहा था। लेकिन मैंने अभी तक कोशिश नहीं की है और इस दृष्टिकोण में शायद कुछ डाउनसाइड्स हैं। – Elwood

+0

मैं वही चीज़ ढूंढ रहा हूं (उसी टैब में खुलता हूं) लेकिन अधिमानतः क्यूटी 5 में। लेकिन मैं एक क्यूटी 4 समाधान भी लेगा। – amenthes

उत्तर

2

जो आप पूछ रहे हैं वह जिस तरह से आप कल्पना करते हैं उसमें करना असंभव है। openUrl() अपने दस्तावेज़ में उल्लिखित तर्क को खोलने के लिए प्रोग्राम निर्दिष्ट करने के लिए ऑपरेटिंग सिस्टम का उपयोग करता है।

कुछ कामकाज हो सकते हैं, लेकिन उनमें से कोई भी अच्छी तरह से काम नहीं करेगा, या सभी ब्राउज़रों पर काम करेगा। यह सिर्फ इतना है कि इस तरह के बढ़िया नियंत्रण आपके लिए असंभव होने की संभावना है।

यदि आप ब्राउज़र में किसी टैब का नियंत्रण चाहते हैं, तो आप उस टैब द्वारा प्रदर्शित विंडो ढूंढ सकते हैं और इसे खोलने से पहले इसे बंद कर सकते हैं। यह समाधान हैकी की तरह है।

एक और hacky समाधान संपादन बॉक्स की HWND यूआरएल पकड़े, और SendMessage() का उपयोग कर अपने टेक्स्ट को परिवर्तित करने की कोशिश करने का मिल रहा है। यह क्रोम पर काम नहीं करेगा, हालांकि, यह यूआरएल विंडो के लिए अलग नियंत्रण का उपयोग नहीं करता है। यह फ़ायरफ़ॉक्स या आईई पर काम कर सकता है।

बेहतर समाधान यह है कि आप अपने वेब ब्राउज़र को क्यूटी वेबकिट का उपयोग करके नियंत्रित करते हैं। इसमें एक पृष्ठ प्रस्तुत करना और यूआरएल को देखना बहुत आसान है। QWebViewQtWebKit के कार्यान्वयन का उपयोग करने में आसान है।

आप वेबपेज खोल सकते हैं और सक्रिय टैब को फिर से लोड:

+0

धन्यवाद phyatt। मैं QtWebKit में खींचकर मौजूदा ब्राउज़र कार्यक्षमता को डुप्लिकेट नहीं करना चाहता हूं। – Elwood

0

हो सकता है कि आप इस उपयोगी पाया होगा।

आप एक तर्क के रूप ब्राउज़र के नाम की आपूर्ति है, यह मिल जाएगा और फिर से लोड वर्तमान पृष्ठ

https://unix.stackexchange.com/questions/37258/refresh-reload-active-browser-tab-from-command-line

+0

यह एक दिलचस्प बात है, लेकिन मेरे मन में काफी कुछ नहीं था। एक बात के लिए, मैं 'xdotool' पर निर्भर करता हूं, इसलिए यह प्लेटफॉर्म पर उपलब्ध नहीं है। – amenthes