python - 如何使用 python Gtk 和 webkit 在 webview 上叠加图像

标签 python webview webkit gtk pygtk

我需要有关如何在 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/

相关文章:

swift - UICollectionView cellForItemAt 在 InsertItems 之后未调用(位于 :) - How to preload next cell?

java - 使用 WebView onTouchListener 链接到另一个 Activity - Android

javascript - 跳过 MP3 会导致播放器在 Webkit 浏览器中中断

css - 它有什么作用? webkit-字体平滑

python - 在 Python 中使用 OpenCV 相位展开函数

Python 以 4D 结构过滤信号

java - Android:WebView 在中心加载图像/内容

android - 我可以在 Android 2.1 的基于 Webkit 的浏览器中使用数据 URL 吗?

python - pandas DataFrame 多列的并排箱线图

python - Google App Engine 在按钮点击时重定向到用户登录