最近在重构客户端,需要通过嵌入式页面来获取管理页面,通过比对多个库,最终选用了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作