Adding a Dock Widget to QGIS
The following code snippet contains the constructor of a GUI control class for QGIS plugins. It’s job is to initialize the plugin GUI (a dock widget in this case) and create signal connections:
import os from PyQt4.QtCore import * from PyQt4.QtGui import * from PyQt4 import uic from qgis.core import * class MyGuiControl(QObject): """This class controls all plugin-related GUI elements.""" def __init__ (self,iface): """initialize the GUI control""" QObject.__init__(self) self.iface = iface # load the form path = os.path.dirname( os.path.abspath( __file__ ) ) self.dock = uic.loadUi( os.path.join( path, "mywidget.ui" ) ) self.iface.addDockWidget( Qt.RightDockWidgetArea, self.dock ) # connect to gui signals QObject.connect(self.dock... ...
Using uic.loadUi is a convenient way to create a user interface with minimum effort. Of course the performance might be better if we compile the .ui code to python first, but during development phase this saves us an extra step.