QCefView嵌入页面优化问题(1)——实现刷新和DevTool功能

最近在重构客户端,需要通过嵌入式页面来获取管理页面,通过比对多个库,最终选用了Qt+QCefView实现,其中遇到了挺多问题,这里进行一个简单的分享。

QCefView的嵌入式页面的按键响应功能(这里以F5刷新和F12打开DevTool),是在QCefViewBrowserHandler中通过继承CefKeyboardHandler,重写OnPreKeyEvent实现。

bool QCefViewBrowserHandler::OnPreKeyEvent(CefRefPtr<CefBrowser> browser,
     const CefKeyEvent& event,
     CefEventHandle os_event,
     bool* is_keyboard_shortcut)
{
    QString qsParam = QString("windows_key_code: %1").arg(event.windows_key_code);
    OutputDebugStringA(qsParams.toStdString().c_str());

    if (KEYEVENT_RAWKEYDOWN == event.type)
    {
        if(VK_F5 == event.windows_key_code)           // F5刷新页面
        {
            browser->Reload();
            return true;
        }
        else if (VK_F12 == event.windows_key_code)    // F12打开开发调试工具
        {
            CefWindowInfo windowInfo;
            // 这里用Popup以DevTools作为标题打开弹窗,也可以用SetAsChild
            windowInfo.SetAsPopup(NULL, "DevTools");  
            browser->GetHost()->ShowDevTools(windowInfo, this, CefBrowserSettings(), CefPoint());
        }
    }
    return false;
}

这里只以最常用的F5和F12为例,有其他的按键需求可以仿照上述例子实现,此外若需要组合按键操作,可以结合使用Qt::Modifier实现

  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值