2008-08-25 7 views
5

मैं wxPython में ड्रैग और ड्रॉप द्वारा थोड़ा परेशान हूं (लेकिन शायद यह प्रश्न अन्य जीयूआई ढांचे में भी खींचने और ड्रॉप करने के लिए संबंधित हैं)। ढांचे में कुछ कॉलबैक (ऑनइंटर और ऑनड्रागओवर) प्रदान किए जाते हैं जो मुझे सिस्टम को सूचित करने की अनुमति देते हैं कि वर्तमान माउस स्थिति किसी भी चीज़ को छोड़ने के लिए एक वैध स्थान है जिसे खींच लिया जा रहा है। इन तरीकों से मैं wx.DragNone, wx.DragCopy, आदि वापस कर सकता हूं। मुझे क्या परेशान है कि इन तरीकों से मुझे गेटडाटा को कॉल करने की अनुमति नहीं है, जिसका अर्थ है कि मुझे उस डेटा की जांच करने की अनुमति नहीं है जिसे उपयोगकर्ता खींच रहा है। अगर मैं डेटा नहीं देख पा रहा हूं, तो मुझे यह कैसे पता होना चाहिए कि उपयोगकर्ता को यहां छोड़ना ठीक है या नहीं?wxpython: मैं OnDragOver में ड्रैग किए गए डेटा की जांच कैसे करूं?

उत्तर

1

एक समाधान, जो सीमित उपयोगिता का हैक है, जब ड्रैग शुरू किया जाता है, तो ड्रैग किए गए डेटा को कहीं भी वैश्विक या स्थैतिक संदर्भ में संग्रहीत करें। इस तरह, OnEnter और OnDragOver हैंडलर में, डेटा को खींचने के लिए संदर्भ प्राप्त करना संभव है। यह निश्चित रूप से केवल उसी एप्लिकेशन के भीतर ड्रैग के लिए उपयोगी है (वास्तव में एप्लिकेशन का एक ही उदाहरण)।

1

OnEnter और OnDragOver विधियों में खींचने वाले डेटा को देखने का कोई तरीका नहीं है।

मुझे मिला एकमात्र समाधान ड्रैग किए गए आइटम को कुछ इंस्टेंस वैरिएबल में स्टोर करना है जो इन तरीकों के अंदर पठनीय है।

+0

क्या आप इस पर थोड़ा विस्तार कर सकते हैं। मैं एक मजेदार परियोजना के लिए डब्ल्यूएक्स का उपयोग करने की योजना बना रहा था। एक एक्स/वाई रिटर्न के साथ खींचना, मैं कुछ गिन रहा था। –

+0

ओह, आप देख सकते हैं कि डेटा कहां गिराया गया है, आप यह नहीं देख सकते कि खींचने के दौरान क्या खींचा जा रहा है (उपयोगकर्ता माउस बटन से जाने देता है), जो कभी-कभी उपयोगी होता है (उदाहरण के लिए यदि आप माउस पॉइंटर को बदलना चाहते हैं खींचा सामग्री)। – DzinX

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