【问题标题】:QWebview/webkit disable selection of textQWebview/webkit 禁用文本选择
【发布时间】:2010-10-13 23:29:21
【问题描述】:

我有一个加载一些网页的 QWebView,但是当鼠标按下并拖动它时会出现问题,它会选择所有阻碍它的东西。

有什么办法可以摆脱这个吗?我不想选择文本和其他项目。,

如果我限制 mouseMove 和 mousePress,那么这些事件的其他功能也会受到限制,这是我不想要的。

我在 QWebView/Qwebpage 中尝试了很多方法,但没有找到,我需要在 webkit 中做些什么吗?

请帮忙

【问题讨论】:

    标签: webkit selection qwebview


    【解决方案1】:

    如果你控制正在加载的内容,你可以使用css:

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

    否则,您可能会使用此规则添加用户样式表。

    【讨论】:

    • 非常适合文本,但如果我在图像上单击并拖动,图像仍会跟随指针(我也希望避免这种情况)。编辑:stackoverflow.com/questions/2040405/… 中的解决方案
    【解决方案2】:

    如果您想要 QT 答案,也许这是一个选项:

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

    它覆盖了原来的函数,实现了在你的 webview 中只有 press 和 release 事件可用。 这在 QT 4.8 上对我有用。

    【讨论】:

      【解决方案3】:

      试试这个方法:

      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)
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2011-01-15
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2010-12-11
        • 1970-01-01
        相关资源
        最近更新 更多