如何在 ubuntu 中向自定义编写的 Web 浏览器添加主页按钮和选项卡

如何在 ubuntu 中向自定义编写的 Web 浏览器添加主页按钮和选项卡

如何为网络浏览器编写主页按钮代码?

我正在 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在窗口内创建一个,并将每个浏览器视图打包到单独的页面中。

相关内容