python - PyQt Web 浏览器 : Focus on the webpage without a mouse click

标签 python linux webkit embedded pyqt

我正在为没有鼠标输入的嵌入式设备编写应用程序。 Web 浏览器非常非常基本,没有任何按钮、地址栏、文件栏等。现在,它只是加载一个网页。此网页使用 javascript 来捕获按键事件以进行操作。

我遇到的问题是,当浏览器加载时,没有捕捉到按键。我已经将这个问题归结为我认为是焦点问题。当浏览器加载时,它没有焦点,直到在应用程序上发生鼠标单击。由于我没有鼠标,因此无法进行初始点击。

我如何确保浏览器应用程序获得正确的焦点,以便当我从终端或脚本启动它时,它会立即获得焦点并且关键事件可以相应地发生?

我的代码如下:

#!/usr/bin/env python
import sys
from PyQt4.QtCore import *
from PyQt4.QtGui import *
from PyQt4.QtWebKit import *

app = QApplication(sys.argv)
web = QWebView()
web.showFullScreen()
web.load(QUrl("http://www.google.com"))
sys.exit(app.exec_())

假设我使用正确,QWidget.setFocus() 不起作用。任何帮助表示赞赏。谢谢

最佳答案

我在我的笔记本电脑上尝试了您的代码,QWebView 已经获得了焦点 - 一旦加载了 Google,我就可以输入并且我的文本出现在文本框中。

如果这是一个焦点问题,那么由于 QWebView 继承了 QWidget,您可以调用它的 setFocus()方法。这是您的代码,其中有一行在页面加载后调用 QWebView 的 setFocus 方法:

import sys
from PyQt4.QtCore import *
from PyQt4.QtGui import *
from PyQt4.QtWebKit import *

app = QApplication(sys.argv)
web = QWebView()
web.loadFinished.connect(web.setFocus)
web.showFullScreen()
web.load(QUrl("http://www.google.com/"))
sys.exit(app.exec_())

关于python - PyQt Web 浏览器 : Focus on the webpage without a mouse click,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6513311/

相关文章:

python - 从 tomcat .dbx 文件迁移数据

python - 如何禁用 pywebkit 控制台消息?

android - iOS 或 Android 上的 WebKit 开发中的陷阱/错误

python - 如何使用三角矩阵使 np.where 更高效?

Python - 有没有办法通过一行来追溯文件对象的当前位置

python - 为 MS-SQL 创建不区分大小写的 SQLAlchemy 查询

linux - 如何将部分时间戳添加到 Fluentd 输出文件格式

linux - 获取包含 "typeset -r VAR=value"的 shell 脚本

c - 当在循环中突然退出 C 程序时,为什么会发生额外的循环迭代?

css - 移除 Safari/Chrome iframe 发光