2010-02-10 13 views
7

मेरे क्यूटी ऐप में कई खिड़कियां हैं और कभी-कभी, भले ही खिड़कियां पहले से खुली हैं लेकिन अन्य खिड़कियों के नीचे चली गई हैं, तो उपयोगकर्ता मेनविंडो मेनूबार से एक खोलने का विकल्प चुन देगा, इस मामले में मैं इसे आसानी से ले जाना चाहता हूं और इसे बनाना चाहता हूं वर्तमान एक। अब QWidget-> raise का उपयोग करके यह विंडो अन्य सभी विंडोज़ के शीर्ष पर जाती है लेकिन यह इसे चुनती नहीं है और यही मुझे करने की ज़रूरत है। मैंने QWidget-> setFocus की कोशिश की लेकिन वह कुछ भी नहीं करता है। इस बीच में मैं QWidget-> क्लोज़ के बाद QWidget-> शो के संयोजन का उपयोग कर रहा हूं लेकिन मैं जानना चाहता हूं कि -> raise के साथ उपयोग करने के लिए कोई आदेश है या नहीं।, मैं विंडो को वर्तमान विंडो कैसे बना सकता हूं?

मैंने कोशिश की:

 pMission->raise(); 
     pMission->setFocus(Qt::ActiveWindowFocusReason); 

लेकिन यह काम नहीं किया तो मैं प्रयोग किया है:

 pMission->close(); 
     pMission->show(); 
+0

क्या आप मतलब है "... अन्य सभी विंडो के शीर्ष पर जाना है लेकिन यह उसका चयन नहीं करता है"? –

+0

मेरा मतलब है कि कमांड pmission-> raise(); खिड़की को अन्य सभी खिड़कियों के शीर्ष पर बना देता है लेकिन यह "वर्तमान" विंडो नहीं बनता है। –

उत्तर

8

क्या तुमने कभी QWidget :: activateWindow की कोशिश की?

मदद फ़ाइल से, इस समारोह

जा रहा है शीर्ष स्तर के इस विजेट युक्त सक्रिय विंडो होने के लिए विजेट सेट करता है। एक सक्रिय विंडो एक दृश्यमान शीर्ष-स्तरीय विंडो है जिसमें कीबोर्ड इनपुट फ़ोकस है।

3

क्यूटी 4.8.0 के साथ मैकोज शेर पर, raise() केवल एक ही था जो मेरे लिए काम करता था। सक्रिय करेंविंडो() और सेटफोकस() नहीं था।

(मैं इस मेसन के जवाब पर एक टिप्पणी करने के लिए पर्याप्त कर्म नहीं है)

+0

क्यूटी 5.3.2, 32 बिट के रूप में, ओएस एक्स 10.10 योसमेट में अपेक्षित के रूप में सक्रिय (सक्रिय मेंडन ​​के रूप में) सक्रिय करें। – SexyBeast

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