Example 2: Creating a dock widget that contains a tree view.python from PyQt4 import QtGui, QtCore class MyTreeView(QtGui.QTreeView): def __init__(self, parent=None): super(MyTreeView, self).__init__(parent) model = QtGui.QStandardItemModel() model.setHorizontalHeaderLabels(['Name', 'Description', 'Type']) root_item = model.invisibleRootItem() # Add some items to the model. self.setModel(model) app = QtGui.QApplication([]) main_window = QtGui.QMainWindow() dock_widget = QtGui.QDockWidget('My Dock Widget', main_window) tree_view = MyTreeView(dock_widget) dock_widget.setWidget(tree_view) main_window.addDockWidget(QtCore.Qt.RightDockWidgetArea, dock_widget) main_window.show() app.exec_() ``` In summary, PyQt4 QtGui QDockWidget is a component of PyQt4 that provides a movable, re-sizeable, and collapsible widget for adding flexible and customizable areas to an application's main window. The code examples above demonstrate how to create simple and custom dock widgets with this component. The library package required is PyQt4.