c++ - फोकस चोरी किए बिना क्यूटी में खिड़की दिखाएं




qt focus (2)

यदि आप फ़्लोटिंग पूर्वावलोकन बॉक्स / कोई अन्य विजेट बनाना चाहते हैं तो बस नीचे उपयोग करें

thumbnail = new QLabel;
thumbnail->setAttribute(Qt::WA_ShowWithoutActivating);
thumbnail->setParent(0);
thumbnail->setWindowFlags(Qt::Tool | Qt::FramelessWindowHint|Qt::WindowStaysOnTopHint);

क्यूटी :: उपकरण इसे काम करने के लिए महत्वपूर्ण झंडा है। मेरा मतलब फोकस चोरी नहीं है।

जब मैं दूसरी मॉनीटर का उपयोग नहीं कर रहा हूं तो मैं दूसरे मॉनिटर पर स्लाइड शो दिखाने के लिए क्यूटी लाइब्रेरी का उपयोग कर रहा हूं। एक उदाहरण यह है कि उपयोगकर्ता पहले मॉनिटर में गेम खेल रहा है और दूसरी मॉनीटर में स्लाइड शो दिखा रहा है।

समस्या यह है कि जब मैं क्यूटी में एक नई विंडो खोलता हूं, तो यह स्वचालित रूप से पिछले एप्लिकेशन से फोकस चुरा लेता है। क्या ऐसा होने से रोकने के लिए कोई रास्ता है?


विजेट डिफ़ॉल्ट रूप से फोकस स्वीकार नहीं करते हैं लेकिन संभवतः आपने सादा विजेट नहीं बनाया है? यह कौन सा सबक्लास था? QMainWindow या कुछ और?

यह संभव है कि विंडो सबक्लास डिफ़ॉल्ट रूप से फ़ोकस स्वीकार करने के लिए डिफ़ॉल्ट हो, इसलिए QWidget :: showFocus को कॉल करने से पहले QWidget :: setFocusPolicy को Qt :: NoFocus के साथ स्पष्ट रूप से कॉल करने का प्रयास करें।

साथ ही, सुनिश्चित करें कि आप किसी भी समय विंडो या उसके किसी भी विजेट पर QWidget :: activateWindow () को कॉल नहीं कर रहे हैं।





active-window