- android - RelativeLayout 背景可绘制重叠内容
- android - 如何链接 cpufeatures lib 以获取 native android 库?
- java - OnItemClickListener 不起作用,但 OnLongItemClickListener 在自定义 ListView 中起作用
- java - Android 文件转字符串
上下文:我正在创建一个带有自定义屏幕键盘的小型网络浏览器。
它在 Qt WebKit(QWeb*
类)上几乎可以正常工作,但由于 WebKit 中的错误而导致崩溃...在 Qt 5.4.0 之后不会修复,因为它们是转向 Qt WebEngine。
所以我决定按照简短的 webkit->webengine 转换指南将这些东西移动到 Qt WebEngine(QWebEngine*
类)。在关于 QWebElement
的警告部分之后,我一直在努力显示/隐藏屏幕键盘(现在需要运行 async.JS 代码)。但我对如何将人工按键事件发送到网页摸不着头脑。
我已经尝试了一些东西:
QCoreApplication::postEvent(m_webview, event)
在使用旧的 QWeb
东西时不做任何事情;谢谢,
最佳答案
尽管最初的问题已经存在一年了,但对于那些像我一样决定(终于!)从 QWebKit 迁移到 QWebEngine (Qt 5.5 - 5.6b) 的人来说仍然是现实的。这是一个肮脏的解决方案,需要现有的 webenginepage->view()。这是针对鼠标事件的,如果它不针对键盘事件也不足为奇:
void Whatever::sendMouseEvent( QObject* targetObj, QMouseEvent::Type type, const QPoint& pnt ) const
{
QMouseEvent event( type, pnt, Qt::LeftButton, Qt::LeftButton, Qt::NoModifier );
QApplication::sendEvent( targetObj, &event );
}
void Whatever::sendMouseClick( QObject* targetObj, const QPoint& pnt ) const
{
sendMouseEvent( targetObj, QMouseEvent::MouseMove, pnt );
sendMouseEvent( targetObj, QMouseEvent::MouseButtonPress, pnt );
sendMouseEvent( targetObj, QMouseEvent::MouseButtonRelease, pnt );
}
void Whatever::emulateMouseClick( const QPoint& pnt ) const
{
//-- right now (Qt 5.5 & 5.6) there is only one child -
//-- QtWebEngineCore::RenderWidgetHostViewQtDelegateWidget
//-- but it could change in future
Q_FOREACH( QObject* obj, mWebEnPage->view()->children() ) //-- ACHTUNG! Check mWebEnPage->view() in real code!
if( qobject_cast<QWidget*>( obj ) )
sendMouseClick( obj, pnt );
}
灵感来自 Using QWebEngine to render an image和 How can I get paint events with QtWebEngine?和谷歌搜索。
关于c++ - 如何发送人工 QKeyEvent 到 QWebEngineView?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27894769/
这个问题已经有答案了: How does Google reCAPTCHA v2 work behind the scenes? (5 个回答) 已关闭 8 年前。 我知道评估是人类用户正在使用您的网
根据以下链接,Artifactory AQL 允许通过 REST API 仅返回感兴趣的字段来“显示特定字段”。 https://www.jfrog.com/confluence/display/RT
我想制作一个比应有的大得多的虚拟 Win32 EXE 文件。所以默认情况下,样板 Win32 EXE 文件为 80 KB。我想要一个 5 MB 的空间来测试其他一些实用程序。 第一个想法是添加资源,但
这个问题已经在这里有了答案: 已关闭10年。 Possible Duplicate: Relational database design question - Surrogate-key or Na
我正在尝试在构建作业中生成一个 JSON 构建信息文件以上传到 Artifactory 并在两个工具之间创建可跟踪性。然而,常规的 Jenkins JSON API 文件设计不正确,因此我需要在运行作
当您通过现有 Artifactory 将 Artifactory 部署到 Artifactory 时,它不会将其与现有 Artifactory 所具有的构建相关联。 例如:如果您使用 Jenkins
我是一名优秀的程序员,十分优秀!