我需要有关如何在 WebView 上叠加图像的帮助。我希望能够在网页上放置一个按钮或图像(一个 webview 对象) 所以我有以下内容
import gtk
import webkit
...
win=gtk.Window()
page=webkit.Webview()
page.open("http://www.google.com")
image=gtk.Image()
image.set_from_file("HappyFish.jpg")
container=gtk.Fixed()
win.add(container)
container.add(page)
container.add(image)
win.show_all()
gtk.main()
一切正常,除了页面覆盖图像或按钮(即使我将按钮放在容器中页面之后),我需要它以便我可以将图像放在网页顶部......很多就像页面上的 Logo 一样。 我不想将页面转换为图像并将两个图像叠加在另一个之上,它需要保持交互。非常感谢有关此主题的任何帮助。
最佳答案
GTK+3 有一个 dedicated API为此:GtkOverlay
(更具体地说:它是在 3.2 版中添加的)。
从您提供的代码来看,您似乎正在使用 PyGTK 和 GTK+2,因此可能值得考虑为该功能迁移到新版本的工具包。
gtk3-demo
应用程序提供了覆盖的良好演示。根据您的发行版,此应用程序包含在不同的包中(我不确定它是否在 OSX/Windows 上可用),因此您可能需要四处看看才能为它找到正确的包。
作为 PyGObject 和 GTK3 中的示例(注意:为适应 Webkit 和 GTK api 的更改而进行的一些更改):
from gi.repository import Gtk, WebKit
...
win = Gtk.Window()
overlay = Gtk.Overlay()
page = WebKit.WebView()
page.load_uri("http://www.google.com")
overlay.add(page)
image = Gtk.Image()
image.set_from_file("HappyFish.jpg")
image.set_halign(Gtk.Align.START)
image.set_valign(Gtk.Align.START)
overlay.add_overlay(image)
win.add(overlay)
win.show_all()
win.connect('destroy', Gtk.main_quit)
Gtk.main()
关于python - 如何使用 python Gtk 和 webkit 在 webview 上叠加图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21586394/