2010-10-13 47 views
5

Tôi có một QWebView tải một số trang web, nhưng vấn đề khi nhấn chuột và kéo nó chọn mọi thứ theo cách của nó.QWebview/webkit vô hiệu hóa lựa chọn văn bản

Có cách nào tôi có thể loại bỏ điều này không ?? Tôi không muốn văn bản và các mục khác được chọn.,

Nếu tôi hạn chế mouseMove và mousePress thì chức năng khác với sự kiện này cũng bị hạn chế, đó là những gì tôi không muốn.

Tôi đã cố gắng rất nhiều để tìm bất kỳ cách nào trong QWebView/Qwebpage nhưng không tìm thấy bất kỳ, tôi có cần phải làm điều gì đó trong webkit không?

Xin giúp

Trả lời

7

Nếu bạn kiểm soát các nội dung đang được nạp, bạn có thể sử dụng css:

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

Nếu không, bạn có thể thêm một kiểu sử dụng với quy tắc này.

+1

Làm việc độc đáo cho văn bản, nhưng vẫn còn nếu tôi nhấp và kéo bắt đầu lại một hình ảnh, hình ảnh sau con trỏ (Tôi đã hy vọng để tránh điều đó quá). Chỉnh sửa: giải pháp trong http://stackoverflow.com/questions/2040405/disable-drag-drop-in-qtwebkit – lapo

1

Nếu bạn muốn có một câu trả lời QT, có lẽ đây là một lựa chọn:

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

Nó sẽ ghi đè các chức năng ban đầu và đạt được mà chỉ nhấn và thả các sự kiện có sẵn trong webview của bạn. Điều này làm việc cho tôi trên QT 4.8.

-1

Hãy thử phương pháp này:

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) 
Các vấn đề liên quan