• 9324阅读
  • 5回复

關於QWebView上的插件處理 [复制链接]

上一主题 下一主题
离线午小夜
 

只看楼主 倒序阅读 楼主  发表于: 2010-03-20
— 本帖被 XChinux 从 General Qt Programming 移动到本区(2011-01-02) —
問題描述:
        Windows XP下.
        在QWebView中,有個quicktime的插件(播放視頻流),我要做的就是截獲/吸收插件上的鼠標事件。試了以下方法:
1.QWebView安裝事件過濾器,在eventFilter中屏蔽鼠標事件. 從調試中看,QWebView沒有接收到到鼠標事件.可是插件已經暫停了播放.
bool eventFilter(QObject *target, QEvent *event)
    {
        if (event->type() == QEvent::KeyPress)
        {
            QKeyEvent *keyEvent = static_cast<QKeyEvent *>(event);
            qDebug("Ate key press %d", keyEvent->key());
            return true;
        }
        else if(event->type() == QEvent::MouseButtonPress)
        {
            QMouseEvent *mouseEvent = static_cast<QMouseEvent *>(event);
            qDebug("Ate MouseButtonPress %d", mouseEvent->button());
            return true;
        }
        else if(event->type() == QEvent::MouseButtonRelease)
        {
            QMouseEvent *mouseEvent = static_cast<QMouseEvent *>(event);
            qDebug("Ate MouseButtonRelease %d", mouseEvent->button());
            return true;
        }
        else if(event->type() == QEvent::MouseButtonDblClick)
        {
            QMouseEvent *mouseEvent = static_cast<QMouseEvent *>(event);
            qDebug("Ate MouseButtonDblClick %d", mouseEvent->button());
            return true;
        }
        else
        {
            // standard event processing
            return QObject::eventFilter(target, event);
        }
    }
2.QWebView上方蒙一個透明的部件.從調試中看,設置的透明屬性未生效.
    QLabel* label = new QLabel(this,Qt::WindowStaysOnTopHint|Qt::FramelessWindowHint);
    label->setFixedSize(320,240);
    label->move(0,0);
    label->setAttribute(Qt::WA_TranslucentBackground);
    label->setStyleSheet("background-color:rgba(255,255,255,0);");
    label->show();


所以,怎麽解決呢?
[ 此帖被午小夜在2010-03-21 14:03重新编辑 ]
[操作系统版本]  Windows XP;Linux Ubuntu;Linux Fedora;
[Qt SDK版本]    4.7.0
[SDK 发布日期]  2010.05
[IDE(集成开发环境)] QtCreator
个人网页:http://hi.baidu.com/午小夜
學歷:Royal Jalidon
离线午小夜

只看该作者 1楼 发表于: 2010-03-21
貌似,quicktime插件是嵌入在QWebView上方的,儘管給QWebView設置了追蹤鼠標的屬性,可是還是會被quicktime插件先截獲掉鼠標事件。。。怎麽屏蔽鼠標事件啊。。。
[操作系统版本]  Windows XP;Linux Ubuntu;Linux Fedora;
[Qt SDK版本]    4.7.0
[SDK 发布日期]  2010.05
[IDE(集成开发环境)] QtCreator
个人网页:http://hi.baidu.com/午小夜
學歷:Royal Jalidon
离线午小夜

只看该作者 2楼 发表于: 2010-03-21
Flash cannot paint on argb32 pixmaps since it does not use the visual provided using the npapi (it uses gdk_default_system_visual instead). This makes it very hard to implement transparency. For QWebView, we grab contents from the backing store to implement transparency. For all other cases, transparency is turned off (except when the default system visual is 32-bit).
[操作系统版本]  Windows XP;Linux Ubuntu;Linux Fedora;
[Qt SDK版本]    4.7.0
[SDK 发布日期]  2010.05
[IDE(集成开发环境)] QtCreator
个人网页:http://hi.baidu.com/午小夜
學歷:Royal Jalidon
离线benbenmajia

只看该作者 3楼 发表于: 2010-03-22
我来顶楼...
安然.....
离线pantimmy
只看该作者 4楼 发表于: 2011-07-05
回 1楼(午小夜) 的帖子
楼主,我也碰到了相同的问题,怎么在QwebView上实现透明的控件或者透明的按钮的效果,楼主现在有研究出来吗?望赐教,谢谢~~
离线fengzhishang

只看该作者 5楼 发表于: 2011-12-13
求真像.
快速回复
限100 字节
 
上一个 下一个