【发布时间】:2010-10-13 23:29:21
【问题描述】:
我有一个加载一些网页的 QWebView,但是当鼠标按下并拖动它时会出现问题,它会选择所有阻碍它的东西。
有什么办法可以摆脱这个吗?我不想选择文本和其他项目。,
如果我限制 mouseMove 和 mousePress,那么这些事件的其他功能也会受到限制,这是我不想要的。
我在 QWebView/Qwebpage 中尝试了很多方法,但没有找到,我需要在 webkit 中做些什么吗?
请帮忙
【问题讨论】:
我有一个加载一些网页的 QWebView,但是当鼠标按下并拖动它时会出现问题,它会选择所有阻碍它的东西。
有什么办法可以摆脱这个吗?我不想选择文本和其他项目。,
如果我限制 mouseMove 和 mousePress,那么这些事件的其他功能也会受到限制,这是我不想要的。
我在 QWebView/Qwebpage 中尝试了很多方法,但没有找到,我需要在 webkit 中做些什么吗?
请帮忙
【问题讨论】:
如果你控制正在加载的内容,你可以使用css:
body { -webkit-user-select: none; }
否则,您可能会使用此规则添加用户样式表。
【讨论】:
如果您想要 QT 答案,也许这是一个选项:
class MyWebView : public QWebView
{
protected:
virtual void mouseMoveEvent(QMouseEvent *) { /* dummy implementation */ }
public:
MyWebView(QWidget* parent) : QWebView(parent) { }
}
它覆盖了原来的函数,实现了在你的 webview 中只有 press 和 release 事件可用。 这在 QT 4.8 上对我有用。
【讨论】:
试试这个方法:
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)
【讨论】: