PyGTK - webkit.WebView 在 Ubuntu 11.04 中无法工作
这里有一些代码片段:
import gtk, webkit, os
w = gtk.Window()
w.set_title("Example Editor")
w.connect("destroy", gtk.main_quit)
w.resize(500, 500)
editor = webkit.WebView()
editor.load_html_string("<p>This is a <b>test</b>", "file:///")
editor.set_editable(True)
def on_action(action):
editor.execute_script(
"document.execCommand('%s', false, false);" % action.get_name())
actions = gtk.ActionGroup("Actions")
actions.add_actions([
("bold", gtk.STOCK_BOLD, "_Bold", "<ctrl>B", None, on_action),
("italic", gtk.STOCK_ITALIC, "_Italic", "<ctrl>I", None, on_action),
("underline", gtk.STOCK_UNDERLINE, "_Underline", "<ctrl>U", None, on_action),
])
ui_def = """
<toolbar name="toolbar_format">
<toolitem action="bold" />
<toolitem action="italic" />
<toolitem action="underline" />
</toolbar>
"""
ui = gtk.UIManager()
ui.insert_action_group(actions)
ui.add_ui_from_string(ui_def)
vb = gtk.VBox()
vb.pack_start(ui.get_widget("/toolbar_format"), False)
vb.pack_start(editor, True)
w.add(vb)
w.show_all()
gtk.main()
上面的例子是一个简单的测试编辑器,是用gtk webkit视图设计的。
在Ubuntu 10.04中,编辑器是可以编辑的,并且光标在webkit视图中是可见的,但在切换到Ubuntu 11.04后,编辑器就不能编辑了,光标也看不见了。
注意:我使用的是Ubuntu 11.04的经典gnome(不是unity)。
这可能是什么问题呢?我该如何解决这个问题?
任何帮助都将不胜感激,
提前谢谢大家!
1 个回答
0
我遇到了和上面描述的同样的问题,不过我用的是Ubuntu 11.10(Gnome3)。
如果我在
标签中加上content editable=true这个属性,它就能正常工作了。
self.editor.load_html_string("<p contenteditable=\"true\">This is a test", "file:///")
contenteditable=true是可以继承的,所以所有子元素都可以被编辑。