Kontext: Ich erstelle einen kleinen Webbrowser mit einer benutzerdefinierten Bildschirmtastatur.
Es funktionierte fast perfekt mit Qt WebKit ( QWeb*
classes), aber es gab Abstürze, die auf Fehler in WebKit zurückzuführen sind ... die nach Qt 5.4.0 nicht behoben werden, da sie auf Qt WebEngine / p>
Also habe ich beschlossen, die Sachen in Qt WebEngine ( QWebEngine*
classes) zu verschieben, indem ich dem kurzen webkit- & gt; webengine Transition Guide folge.
Nach dem Caveat-Abschnitt auf QWebElement
habe ich mich damit beschäftigt, die Bildschirmtastatur zu zeigen / auszublenden (was nun erfordert, dass async ausgeführt wird. JS-Code).
Aber ich kratze mich am wie man künstliche Schlüsselereignisse an die Webseite sendet .
Ich habe einige Sachen ausprobiert:
QCoreApplication::postEvent(m_webview, event)
tut nichts, wenn es mit dem alten QWeb
stuff; Danke,
Ich denke, die einzige Möglichkeit, dies jetzt zu erreichen, wäre es
Verwenden Sie QAction
, um ein Ereignis an die WebView zu senden, indem Sie beispielsweise Folgendes verwenden:
Ich nehme an, die Funktionalität wird in Qt 5.5.1 hinzugefügt, wie Sie unten sehen können:
Obwohl die ursprüngliche Frage ein Jahr alt ist, ist sie immer noch aktuell für diejenigen, die wie ich entschieden haben (endlich!) von QWebKit zu QWebEngine zu wechseln (Qt 5.5 - 5.6b). Hier ist eine schmutzige Lösung, die bestehende webenginepage- & gt; View () benötigt. Dies ist für Mausereignisse, und es wäre keine große Überraschung, wenn es nicht für Tastaturereignisse ist:
%Vor%Inspiriert von Mit QWebEngine ein Bild rendern und Wie erhalte ich Paint-Events mit QtWebEngine? und googeln.
Tags und Links c++ qt qtwebengine qwebview