# -*- Mode: Python; coding: utf-8; indent-tabs-mode: nil; tab-width: 4 -*-
### BEGIN LICENSE
# Copyright (C) 2012 Marios Papachristou mrmarios97@gmail.com
# This program is free software: you can redistribute it and/or modify it
# under the terms of the GNU General Public License version 3, as published
# by the Free Software Foundation.
#
# This program is distributed in the hope that it will be useful, but
# WITHOUT ANY WARRANTY; without even the implied warranties of
# MERCHANTABILITY, SATISFACTORY QUALITY, or FITNESS FOR A PARTICULAR
# PURPOSE. See the GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License along
# with this program. If not, see <http://www.gnu.org/licenses/>.
### END LICENSE
import gettext
from gettext import gettext as _
gettext.textdomain('quickbrowser')
from gi.repository import Gtk, WebKit # pylint: disable=E0611
import logging
logger = logging.getLogger('quickbrowser')
from quickbrowser_lib import Window
from quickbrowser.AboutQuickbrowserDialog import AboutQuickbrowserDialog
from quickbrowser.PreferencesQuickbrowserDialog import PreferencesQuickbrowserDialog
# See quickbrowser_lib.Window.py for more details about how this class works
class QuickbrowserWindow(Window):
__gtype_name__ = "QuickbrowserWindow"
def finish_initializing(self, builder): # pylint: disable=E1002
"""Set up the main window"""
super(QuickbrowserWindow, self).finish_initializing(builder)
self.AboutDialog = AboutQuickbrowserDialog
self.PreferencesDialog = PreferencesQuickbrowserDialog
self.goBack = self.builder.get_object('goBack')
self.homeButton = self.builder.get_object('homeButton')
self.refreshButton = self.builder.get_object('refreshButton')
self.goButton = self.builder.get_object('goButton')
self.currentaddresslabel = self.builder.get_object('currentaddresslabel')
self.addressbar = self.builder.get_object('addressbar')
self.viewwindow = self.builder.get_object('viewwindow')
self.goForward = self.builder.get_object('goForward')
self.zoomIn = self.builder.get_object('zoomIn')
self.zoomOut = self.builder.get_object('zoomOut')
self.webview = WebKit.WebView()
self.viewwindow.add(self.webview)
self.webview.show()
def on_addressbar_activate(self, widget):
address = widget.get_text()
self.webview.open(address)
def on_refreshButton_clicked(self, widget):
self.webview.reload()
def on_goBack_clicked(self,widget):
self.webview.go_back();
def on_goForward_clicked(self,widget):
self.webview.go_forward();
def on_zoomIn_activate(self,widget):
self.webview.zoom_in();
def on_zoomOut_activate(self,widget):
self.webview.zoom_out();
def on_goButton_clicked(self,widget):
self.webview.open(self.addressbar.get_text())
I am currently developing a web browser in Python using python-webkit.
The source code above is written in order to manage the main window.
How can I constantly display current URL using webview.get_uri() method return value inside a label?
Thanks in advance
Surely the location bar already provides this? You could call your label modifying function wherever
self.webview.open()is called by writing a wrapper likeand then modifying the calls appropriately. Or if you don’t want to change the calls, just move the existing
.open()function likeEdit: You could also use a function decorator on
self.window.open()likeThis would be a better solution if you want to generalise (and you would make the labelled decorator more general – I left this simple as an example).