2010-10-13 5 views
5

Ich habe ein QWebView, das eine Webseite lädt, aber das Problem, wenn die Maus gedrückt und gezogen wird, wählt alles aus, was in ihren Weg kommt.QWebview/webkit deaktiviert die Auswahl von Text

Gibt es eine Möglichkeit, wie ich das loswerden kann ?? Ich möchte nicht, dass Text und andere Elemente ausgewählt werden.,

Wenn ich mouseMove und mousePress einschränke, dann wird es andere Funktionalität mit diesen Ereignissen auch eingeschränkt, was ist, was ich nicht will.

Ich habe versucht, einen Weg in QWebView/Qwebpage zu finden, aber finde keine, muss ich etwas in Webkit tun?

Bitte helfen

Antwort

7

Wenn Sie den Inhalt kontrollieren, die geladen wird, können Sie CSS verwenden können:

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

Andernfalls Sie ein Benutzersheet mit dieser Regel hinzufügen könnte.

+1

funktioniert gut für Text, aber immer noch, wenn ich auf und ziehen Sie auf ein Bild ausgehend, folgt das Bild, um den Zeiger (ich habe gehofft, dass auch zu vermeiden). Bearbeiten: Lösung in http://stackoverflow.com/questions/2040405/disable-dragdrop-in-qtwebkit – lapo

1

Wenn Sie eine QT Antwort wollen, vielleicht ist dies eine Option:

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

Er überschreibt die ursprüngliche Funktion und wird erreicht, dass nur drücken und loslassen Veranstaltungen in Ihrer Webansicht verfügbar. Das hat bei QT 4.8 funktioniert.

-1

versuchen, diese Methode:

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)