All Projects → hiitiger → QtCef

hiitiger / QtCef

Licence: other
A Cef Qt port , inject C++ API to Cef js context using reflection based on Qt's meta object system

Programming Languages

C++
36643 projects - #6 most used programming language

Labels

Projects that are alternatives of or similar to QtCef

Pywebview
Build GUI for your Python program with JavaScript, HTML, and CSS
Stars: ✭ 2,649 (+3385.53%)
Mutual labels:  cef
mlapptools
MATLAB class containing methods for programmatic uifigure modification
Stars: ✭ 23 (-69.74%)
Mutual labels:  cef
cefHtmlSnapshot
Command-line utility for Windows take snapshots of HTML pages and save them as images or PDF
Stars: ✭ 23 (-69.74%)
Mutual labels:  cef
NCUI
基于Duilib + CEF + NodeJs的类似 electron 的UI框架
Stars: ✭ 23 (-69.74%)
Mutual labels:  cef
OldCEF4Delphi
OldCEF4Delphi is an open source project to embed Chromium-based browsers in applications made with Delphi.
Stars: ✭ 55 (-27.63%)
Mutual labels:  cef
wecbrtc-WPFDemo
iConfRTC WebRTC Video Conferencing WPF Demo (c#).
Stars: ✭ 19 (-75%)
Mutual labels:  cef
Cefpython
Python bindings for the Chromium Embedded Framework (CEF)
Stars: ✭ 2,498 (+3186.84%)
Mutual labels:  cef
BlazorCefApp
Build windows desktop GUI app via CEF / WinForms / Blazor server-site
Stars: ✭ 28 (-63.16%)
Mutual labels:  cef
WebKitX
Chromium Embedded Framework (CEF1) ActiveX Wrapper
Stars: ✭ 52 (-31.58%)
Mutual labels:  cef
boletosimples-docs
Documentação da API do Boleto Simples - Sistema para emissão de boletos com registro
Stars: ✭ 23 (-69.74%)
Mutual labels:  cef
cef-mixer
High Performance off-screen rendering (OSR) demo using CEF
Stars: ✭ 183 (+140.79%)
Mutual labels:  cef
MBPython
MBPython is an open source project founded by lochen to provide Python bindings for the miniblink. python miniblink
Stars: ✭ 45 (-40.79%)
Mutual labels:  cef
gstcefsrc
A simple gstreamer wrapper around Chromium Embedded Framework
Stars: ✭ 46 (-39.47%)
Mutual labels:  cef
Chromely
Build HTML Desktop Apps on .NET/.NET Core/.NET 5 using native GUI, HTML5, JavaScript, CSS
Stars: ✭ 2,728 (+3489.47%)
Mutual labels:  cef
browser-window
A simple, cross-platform, async/await aware browser GUI toolkit for Rust.
Stars: ✭ 21 (-72.37%)
Mutual labels:  cef
Bas
BrowserAutomationStudio can automate everything that Chrome can.
Stars: ✭ 203 (+167.11%)
Mutual labels:  cef
nsyslog-parser
Syslog Parser. Accepts RFC 3164 (BSD) and RFC 5424 formats
Stars: ✭ 14 (-81.58%)
Mutual labels:  cef
CefGlue
.NET binding for The Chromium Embedded Framework (CEF)
Stars: ✭ 44 (-42.11%)
Mutual labels:  cef
nimCEF
Nim wrapper for the Chromium Embedded Framework
Stars: ✭ 27 (-64.47%)
Mutual labels:  cef
Uranium
Fast and versatile implementation of CEF for Unreal Engine
Stars: ✭ 51 (-32.89%)
Mutual labels:  cef

QtCef

Codacy Badge

Integrate CEF and Qt, inject C++ API to CEF web page by utilizing reflection system based on Qt's MOC.

Note

  1. this is for Qt5, checkout qt4archive branch for Qt4
  2. need VS2015 or later

Build

  1. download CEF 3.3538 to deps direcotry and unzip to dir cef3538
  2. build cef libcef_dll_wrapper with VS2015
  3. copy cef.lib and libcef_dll_wrapper.lib to common/lib/debug or common/lib/release, copy cef release dlls and resources to bin/debug or bin/release
  4. generator VS2015 solution with qmake -tp vc -r
  5. build all

Usage

With Qt's MOC based reflection, we can utilize it to inject C++ api into Cef web page without manually add every signle method and event for every single api.

    //main process
    QCefOSWidget* webWidget = new QCefOSWidget();
    MyAppApi* api = new MyAppApi(parent);
    QCefApiAdapter* adapter = new QCefApiAdapter(webWidget, parent);
    adpater->initApi(api, "myapp", "app");

    MyToolApi* toolApi = new MyToolApi(parent);
    QCefApiAdapter* toolApiAdapter = new QCefApiAdapter(webWidget, parent);
    toolApiAdapter->initApi(toolApi, adapter->apiPath(), "tool");

    //we are good to go
    //webpage
    a = {"a": 123};
    myapp.app.apiFunc(a, data => console.log(data));
    myapp.app.apiAsyncFunc(a).then( data => console.log(data));
    myapp.app.someEvent.addListener( data => console.log(data));
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].