2010-10-13 4 views
5

У меня есть QWebView, который загружает некоторую веб-страницу, но проблема при нажатии и перетаскивании мыши выбирает все, что происходит на его пути.QWebview/webkit отключить выделение текста

Есть ли способ я могу избавиться от этого ?? Я не хочу, чтобы текст и другие элементы были выбраны.,

Если я ограничу mouseMove и mousePress, тогда другие функции с этим событием также будут ограничены, и это то, чего я не хочу.

Я пытался найти какой-либо способ в QWebView/Qwebpage, но не нашел, нужно ли что-то делать в webkit?

Пожалуйста, помогите

ответ

7

Если вы контролируете содержимое, загружаемой, вы можете использовать CSS:

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

В противном случае вы можете добавить пользователя таблицы стилей с этим правилом.

+1

Работает хорошо для текста, но все же, если я нажимаю и перетащить начиная над изображением, изображение следует за указателем (я надеялся избежать этого тоже). Изменить: решение в http://stackoverflow.com/questions/2040405/disable-drag-drop-in-qtwebkit – lapo

1

Если вы хотите QT ответ, может быть, это вариант:

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

Он переопределяет первоначальную функцию и обеспечивает, что только события нажатия и отпускания доступны в вашем WebView. Это работало для меня на QT 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) 
Смежные вопросы