如何向webkit.WebView()控件发送按键事件?

4 投票
2 回答
2389 浏览
提问于 2025-04-16 22:06

我做了一个适合触摸屏的小浏览器。使用了Python、GTK和WebKit这几个工具。我想在这个浏览器里加一个触摸键盘,想知道怎么把按键事件发送到webkit.WebView()这个控件里?

我的代码:

#!/usr/bin/python
import webkit, gtk
window = gtk.Window()
browser = webkit.WebView()
window.add(browser)
window.show()
browser.show()
browser.load_uri("http://google.com")
window.fullscreen()
window.connect("delete-event", gtk.main_quit)
window.set_title("Dashboard")
gtk.main()

抱歉我的英语不好...

2 个回答

0

你需要在代码中使用JavaScript,这个页面上有一个很好的例子,展示了如何与webkit进行沟通:

http://www.aclevername.com/articles/python-webgui/

把内容读一遍,理解他的思路。简单来说,他使用了一段简单的JavaScript,通过浏览器的标题变化来发送数据。

2

你可以这样做:

event = gtk.gdk.Event(gtk.gdk.KEY_PRESS)
event.keyval = gtk.keysyms.Return
event.time = 0
browser.emit('key-press-event', event)

比如说,如果你想发送一个 Enter 键的按下信号。

撰写回答