अतः इस बारे में पर कुछ सवाल, जो सभी के कहना है कि बिंदीदार सीमा को दूर करने के लिए एक ही रास्ता to set the focusPolicy on widget/item in question to NoFocus है लग रहे हैं बिना बिंदीदार सीमा निकाला जा रहा है। हालांकि यह एक अस्थायी फिक्स के रूप में काम करता है, यह अन्य आवश्यक फोकस इवेंट्स के दायरे में कहा विजेट/आइटम के साथ आगे की बातचीत को रोकता है। सवाल मेंPyQt
ने कहा सीमा:
यहाँ क्यों यह काम नहीं करता, इसका एक उदाहरण।
- मेरे पास एक गैर-मॉडल विजेट पॉपअप है, एक छवि के लिए एक लाइटबॉक्स सोचें।
- मैं विजेट के बाहर माउसPressEvent का पता लगाना चाहता हूं और परिणामस्वरूप विजेट को बंद करना चाहता हूं। ऐसा करने के लिए, मुझे catch the focusOutEvent चाहिए।
- हालांकि, अगर मेरे प्रोग्राम में विजेट का विशाल बहुमत नोफोकस (सीमा मुद्दे को हटाने के लिए) के रूप में सेट किया गया है, तो मैं फोकसऑटवेन्ट नहीं पकड़ सकता क्योंकि आपने अनुमान लगाया है कि उनके पास कोई फोकस नीति नहीं है।
- मैं एक QTreeWidget कि subclassed है तो मैं विभिन्न कारणों के लिए keyPressEvents पकड़ कर सकते हैं है:
यहाँ एक और उदाहरण है।
- QTreeWidget सीमा को रोकने के लिए नोफोकस के रूप में भी सेट किया गया है। इस वजह से, विजेट कभी फोकस नहीं करता है और इसलिए कोई भी keyPressEvents पकड़ा जा सकता है।
- इस के लिए एक कामकाज (kludgy, imo) use the widget's grabKeyboard class है, जो खतरनाक है अगर मैं बाद में केबोर्ड को रिलीज़ करना भूल जाता हूं। यह इष्टतम नहीं है।
तो सवाल यह है कि, मेरे ऐप में सब कुछ के लिए फोकस बंद किए बिना इस अजीब (ज्यादातर बदसूरत) बिंदीदार सीमा को हटाने का कोई तरीका है? अग्रिम में धन्यवाद!
किस ऑपरेटिंग आप पर प्रणाली का उपयोग कर? – jdi
विंडोज़ (7), मुझे डर है। – Cryptite
ठीक है तो आप एक कस्टम पेंटवेन्ट में जा रहे हैं: -/ – jdi