Rim*_*mas 3 qt focus qtwebengine
我用QTreeView和创建了简单的Qt窗口布局QWebEngineView:在树视图中选择一些项目之后,Web引擎视图显示了一些内容.问题是何时QWebEngineView::setHtml(...)或load(...)称为树视图失去键盘焦点,Web引擎视图获取它.在树视图中选择带键盘的项目时,这会造成困难.那么,如何防止树视图焦点丢失?
我试着用QTextBrowser而不是QWebEngineView.它没有这个问题,但它不适用于复杂的HTML页面.
假设我们有:
QWebEngineView *webView = new QWebEngineView;
Run Code Online (Sandbox Code Playgroud)
可以通过调整设置来解决问题:
webView->settings()->setAttribute(QWebEngineSettings::FocusOnNavigationEnabled, false);
Run Code Online (Sandbox Code Playgroud)
示例代码:https://github.com/rmisev/FocusWidget/tree/if-qt-5.8
参考文献:
最简单的解决方案(也由@Netrix指出)是:
webView->setEnabled(false);
Run Code Online (Sandbox Code Playgroud)
但这会禁用键盘输入webView.
为了解决这个问题,我创建了简单FocusWidget类作为父窗口小部件webView,其工作方式如下:
webView(webView->setEnabled(false)),这样可以防止采取集中load(...),setHtml(...)调用.FocusWidget获得焦点,它能够并转发到集中webView,所以使得键盘输入.webView它的孩子失去焦点时,再次FocusWidget禁用webView源代码和示例应用程序:https://github.com/rmisev/FocusWidget
| 归档时间: |
|
| 查看次数: |
1657 次 |
| 最近记录: |