如何使用 python 在网络浏览器中打开标签页
how to open a tab in a web browser using python
我正在 python 中开发 Web 浏览器,我想向其中添加选项卡。
我不知道该怎么做。
我当前的浏览器选项卡功能代码是这样的:
#!/usr/bin/env python
import gtk, webkit
import webbrowser
#WOW
class visionbrowser():
def __init__(self):
# Create window
self.much_window = gtk.Window()
#self.much_window.set_icon_from_file('mAILogo3p.png')
self.much_window.connect('destroy', lambda w: gtk.main_quit())
self.much_window.set_default_size(1600, 1200)
# Create navigation bar
self.so_navigation = gtk.HBox()
self.many_back = gtk.ToolButton(gtk.STOCK_GO_BACK)
self.such_forward = gtk.ToolButton(gtk.STOCK_GO_FORWARD)
self.very_refresh = gtk.ToolButton(gtk.STOCK_REFRESH)
self.wow_address_bar = gtk.Entry()
self.new_tab = gtk.Button()
self.many_back.connect('clicked', self.go_back)
self.such_forward.connect('clicked', self.go_forward)
self.very_refresh.connect('clicked', self.refresh_page)
self.wow_address_bar.connect('activate', self.load_page)
self.new_tab.connect('clicked', self.tab_new)
self.so_navigation.pack_start(self.many_back, False)
self.so_navigation.pack_start(self.such_forward, False)
self.so_navigation.pack_start(self.very_refresh, False)
self.so_navigation.pack_start(self.wow_address_bar)
self.so_navigation.pack_start(self.new_tab)
# Create view for webpage
self.very_view = gtk.ScrolledWindow()
self.such_webview = webkit.WebView()
self.such_webview.open('http://google.com')
self.such_webview.connect('title-changed', self.change_title)
self.such_webview.connect('load-committed', self.change_url)
self.very_view.add(self.such_webview)
# Add everything and initialize
self.wow_container = gtk.VBox()
self.wow_container.pack_start(self.so_navigation, False)
self.wow_container.pack_start(self.very_view)
self.much_window.add(self.wow_container)
self.much_window.show_all()
gtk.main()
def load_page(self, widget):
so_add = self.wow_address_bar.get_text()
if so_add.startswith('http://') or so_add.startswith('https://'):
self.such_webview.open(so_add)
else:
so_add = 'http://' + so_add
self.wow_address_bar.set_text(so_add)
self.such_webview.open(so_add)
def tab_new(self, widget):
self.open_new_tab()
def change_title(self, widget, frame, title):
self.much_window.set_title('[Vision Browser by Maverick A.I.] -->> ' + title)
def change_url(self, widget, frame):
uri = frame.get_uri()
self.wow_address_bar.set_text(uri)
def go_back(self, widget):
self.such_webview.go_back()
def go_forward(self, widget):
self.such_webview.go_forward()
def refresh_page(self, widget):
self.such_webview.reload()
wow = visionbrowser()
浏览器正常工作并打开,我可以打开网页,一切正常。但是,当我单击我的选项卡按钮添加新选项卡时,我得到了 tghis 错误:
self.open_new_tab()
AttributeError: visionbrowser instance has no attribute 'open_new_tab'
有没有办法使用 gtk 或 python 网络浏览器打开标签页?如果是这样 - 在我上面的代码中实现它的最好和最正确的方法是什么
注意:我试过 python webbrowser(导入 webbrowser),它只是抛出一个错误,指出 open_tab 现在是一个可识别的 gtk 命令。
谢谢。
首先,您的视觉浏览器class没有open_new_tab方法。其次你用错了方法。有
webbrowser.open_new_tab("https://docs.python.org/2/library/webbrowser.html")
或
webbrowser.open_new("https://docs.python.org/2/library/webbrowser.html")
我正在 python 中开发 Web 浏览器,我想向其中添加选项卡。 我不知道该怎么做。
我当前的浏览器选项卡功能代码是这样的:
#!/usr/bin/env python
import gtk, webkit
import webbrowser
#WOW
class visionbrowser():
def __init__(self):
# Create window
self.much_window = gtk.Window()
#self.much_window.set_icon_from_file('mAILogo3p.png')
self.much_window.connect('destroy', lambda w: gtk.main_quit())
self.much_window.set_default_size(1600, 1200)
# Create navigation bar
self.so_navigation = gtk.HBox()
self.many_back = gtk.ToolButton(gtk.STOCK_GO_BACK)
self.such_forward = gtk.ToolButton(gtk.STOCK_GO_FORWARD)
self.very_refresh = gtk.ToolButton(gtk.STOCK_REFRESH)
self.wow_address_bar = gtk.Entry()
self.new_tab = gtk.Button()
self.many_back.connect('clicked', self.go_back)
self.such_forward.connect('clicked', self.go_forward)
self.very_refresh.connect('clicked', self.refresh_page)
self.wow_address_bar.connect('activate', self.load_page)
self.new_tab.connect('clicked', self.tab_new)
self.so_navigation.pack_start(self.many_back, False)
self.so_navigation.pack_start(self.such_forward, False)
self.so_navigation.pack_start(self.very_refresh, False)
self.so_navigation.pack_start(self.wow_address_bar)
self.so_navigation.pack_start(self.new_tab)
# Create view for webpage
self.very_view = gtk.ScrolledWindow()
self.such_webview = webkit.WebView()
self.such_webview.open('http://google.com')
self.such_webview.connect('title-changed', self.change_title)
self.such_webview.connect('load-committed', self.change_url)
self.very_view.add(self.such_webview)
# Add everything and initialize
self.wow_container = gtk.VBox()
self.wow_container.pack_start(self.so_navigation, False)
self.wow_container.pack_start(self.very_view)
self.much_window.add(self.wow_container)
self.much_window.show_all()
gtk.main()
def load_page(self, widget):
so_add = self.wow_address_bar.get_text()
if so_add.startswith('http://') or so_add.startswith('https://'):
self.such_webview.open(so_add)
else:
so_add = 'http://' + so_add
self.wow_address_bar.set_text(so_add)
self.such_webview.open(so_add)
def tab_new(self, widget):
self.open_new_tab()
def change_title(self, widget, frame, title):
self.much_window.set_title('[Vision Browser by Maverick A.I.] -->> ' + title)
def change_url(self, widget, frame):
uri = frame.get_uri()
self.wow_address_bar.set_text(uri)
def go_back(self, widget):
self.such_webview.go_back()
def go_forward(self, widget):
self.such_webview.go_forward()
def refresh_page(self, widget):
self.such_webview.reload()
wow = visionbrowser()
浏览器正常工作并打开,我可以打开网页,一切正常。但是,当我单击我的选项卡按钮添加新选项卡时,我得到了 tghis 错误:
self.open_new_tab()
AttributeError: visionbrowser instance has no attribute 'open_new_tab'
有没有办法使用 gtk 或 python 网络浏览器打开标签页?如果是这样 - 在我上面的代码中实现它的最好和最正确的方法是什么
注意:我试过 python webbrowser(导入 webbrowser),它只是抛出一个错误,指出 open_tab 现在是一个可识别的 gtk 命令。
谢谢。
首先,您的视觉浏览器class没有open_new_tab方法。其次你用错了方法。有
webbrowser.open_new_tab("https://docs.python.org/2/library/webbrowser.html")
或
webbrowser.open_new("https://docs.python.org/2/library/webbrowser.html")