2010-10-13 60 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 2011-08-11 12:12:09

1

如果你想有一个QT的答案,也许这是一个选项:

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

它覆盖了原有的功能,并实现了只有按下和释放事件的网页视图是可用的。 这在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)