2010-10-13 18 views
5

मेरे पास एक QWebView है जो कुछ वेबपृष्ठ लोड करता है, लेकिन जब माउस दबाया जाता है और खींच लिया जाता है तो समस्या यह है कि यह सबकुछ उसके रास्ते में आता है।क्यूवेब्यूव/वेबकिट टेक्स्ट का चयन अक्षम करें

क्या कोई तरीका है जिससे मैं इससे छुटकारा पा सकता हूं ?? मैं पाठ और अन्य वस्तुओं का चयन नहीं करना चाहता हूं।

यदि मैं माउसमोव और माउसप्रेस को प्रतिबंधित करता हूं तो यह घटना के साथ अन्य कार्यक्षमता भी प्रतिबंधित हो जाती है जो मैं नहीं चाहता हूं।

मैंने QWebView/Qwebpage में किसी भी तरह से खोजने की कोशिश की लेकिन मुझे कोई नहीं मिला, क्या मुझे वेबकिट में कुछ करने की ज़रूरत है?

कृपया मदद

उत्तर

7

आप सामग्री है कि लोड किए जाने को नियंत्रित हैं, तो आप सीएसएस का उपयोग कर सकते हैं:

body { -webkit-user-select: none; } 

नहीं तो आप इस नियम के साथ एक उपयोगकर्ता स्टाइलशीट जोड़ सकते हैं।

+1

पाठ के लिए अच्छी तरह से काम करता है, लेकिन अभी भी अगर मैं क्लिक करें और खींचें एक छवि से शुरू, छवि सूचक इस प्रकार है (मुझे लगता है कि बहुत से बचने के लिए उम्मीद कर रहा था)। संपादित करें: http://stackoverflow.com/questions/2040405/disable-drag-drop-in-qtwebkit में समाधान – lapo

1

आप एक क्यूटी जवाब चाहते हैं, हो सकता है यह एक विकल्प है:

class MyWebView : public QWebView 
{ 
protected: 
    virtual void mouseMoveEvent(QMouseEvent *) { /* dummy implementation */ } 
public: 
    MyWebView(QWidget* parent) : QWebView(parent) { } 
} 

यह मूल समारोह को ओवरराइड करता है और प्राप्त होता है कि केवल प्रेस और रिहाई की घटनाओं अपने वेब दृश्य में उपलब्ध हैं। यह क्यूटी 4.8 पर मेरे लिए काम किया।

-1

इस विधि का प्रयास करें:

def mousePressEvent(self, event): 
    if event.pos().x() in range(self.frameRight - self.vScrollWidth+1,self.frameRight+1) or event.pos().y() in range(self.frameBottom+1 - self.hScrollHeight,self.frameBottom+1): 
     self.dragScroll = True 
     super(myWeb,self).mousePressEvent(event) 
def mouseMoveEvent(self,event): 
    if self.dragScroll == True: 
     super(myWeb,self).mouseMoveEvent(event)