如何为网络浏览器编写主页按钮代码?
我正在 Ubuntu 中创建一个 Web 浏览器,供在 Ubuntu 中使用。我混合使用了 Glade、Python、Quickly、WebKit 和 WebView
我几乎已经完成了所有事情,并认为主页按钮会是一个不错的选择。我已经安装了主页按钮,只需要知道如何让它工作。
对于选项卡式按钮我已经完成了以下操作:
self.webview = WebKit.WebView()
self.scrolledwindow1.add(self, webview)
self.scrolledwindow2.add(self, webview)
self.scrolledwindow3.add(self, webview)
self.webview.show()
我在 glade 中设置选项卡式窗口和滚动窗口的方式如下:
tab1 保存 scrolledwindow1 tab2 保存 scrolledwindow2 tab3 保存 scrolledwindow3
当我“快速运行”时收到此错误消息:
/usr/lib/python2.7/dist-packages/gi/overrides/Gtk.py:391: Warning: g_object_set_property: construct property "type" for object `Window' can't be set after construction
Gtk.窗口。在里面(self, type=type, **kwds) 回溯(最近一次调用):文件“bin/dm-test”,第 33 行,在 dm_test.main() 文件“/home/matty/dm-test/dm_test/在里面.py”, 第 33 行, 在主窗口中 = DmTestWindow.DmTestWindow() 文件“/home/matty/dm-test/dm_test_lib/Window.py”, 第 35 行, 在新的 new_object.finish_initializing(builder) 文件“/home/matty/dm-test/dm_test/DmTestWindow.py”,第 55 行,在 finish_initializing self.scrolledwindow1.add(self, webview) AttributeError:'DmTestWindow'对象没有属性'scrolledwindow1'
现在我不确定我是否真的以正确的方式调用了选项卡和滚动窗口。下面是我为此编写的完整代码(在选项卡窗口理念之前可以运行)
# Code for other initialization actions should be added here.
#this builds the tool back and all the buttons(defines)
self.toolbar = self.builder.get_object("toolbar")
self.backbutton = self.builder.get_object("backbutton")
self.forwardbutton = self.builder.get_object("forwardbutton")
self.refreshbutton = self.builder.get_object("refreshbutton")
self.stopbutton = self.builder.get_object("stopbutton")
self.homebutton = self.builder.get_object("homebutton")
self.urlentry = self.builder.get_object("urlentry")
self.webview = WebKit.WebView()
self.scrolledwindow1.add(self, webview)
self.scrolledwindow2.add(self, webview)
self.scrolledwindow3.add(self, webview)
self.webview.show()
#This sets the buttons in tool bar to work
def on_backbutton_clicked(self, widget):
self.webview.go_back()
def on_forwardbutton_clicked(self, widget):
self.webview.go_forward()
def on_refreshbutton_clicked(self, widget):
self.webview.reload()
def on_stopbutton_clicked(self, widget):
self.webview.stop_loading()
def on_homebutton_clicked(self, widget):
self.webview.open(DEFAULT_URL)
def on_url_entry_activate(self, widget):
url = widget.get_text()
self.webview.open("http://" + url)
print url
有人知道我该如何正确设置选项卡式窗口(希望它看起来有点像铬)设置它的代码也会有所帮助,或者我需要使用的代码示例以及如何使用它的解释(如果可能的话)。
提前谢谢了
答案1
考虑到您已经通过 Glade 创建了按钮和处理程序,主页按钮非常简单:
# You'll probably have this laying around somewhere already
DEFAULT_URL = "http://www.ubuntu.com"
# class
# init etc
def on_home_clicked(self, widget):
self.web_view.open(DEFAULT_URL)
让浏览器变成标签页需要做更多工作。您应该GtkNotebook
在窗口内创建一个,并将每个浏览器视图打包到单独的页面中。