2010-10-13 12 views
5

Tengo un QWebView que carga algunas páginas web, pero el problema cuando se presiona y arrastra el mouse se selecciona todo lo que se interponga en su camino.QWebview/webkit desactivar la selección de texto

¿Hay alguna manera de que pueda deshacerme de esto? No quiero que se seleccionen texto y otros elementos.

Si restrinjo mouseMove y mousePress, entonces otras funciones con estos eventos también se restringen, que es lo que no quiero.

Traté mucho de encontrar cualquier forma en QWebView/Qwebpage pero no encontré ninguna, ¿tengo que hacer algo en el kit web?

Por favor, ayuda

Respuesta

7

Si se controla el contenido que se está cargando, puede utilizar css:

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

De lo contrario, podría agregar una hoja de estilo de usuario con esta regla.

+1

funciona muy bien para el texto, pero aún si hago clic y arrastrar empezar de nuevo una imagen, la imagen sigue el puntero (que estaba esperando para evitar que también). Editar: solución en http://stackoverflow.com/questions/2040405/disable-drag-drop-in-qtwebkit – lapo

1

Si desea una respuesta QT, tal vez esta es una opción:

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

Se anula la función original y logra que sólo Pulsar y soltar eventos están disponibles en su vista web. Esto funcionó para mí en QT 4.8.

-1

probar este método:

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) 
Cuestiones relacionadas