Back to the MDI windows
Changing the document manager and the application
object to work with the TabManager class
makes them unable to work with the vanilla PyQt
QWorkspace class. We will have to wrap
this one in a class of our own that sports the same functions as
the TabManager class. Fortunately, this
is not an onerous exercise.
"""
workspace.py - MDI workspace class for the mdi framework
copyright: (C) 2001, Boudewijn Rempt
email: boud@rempt.xs4all.nl
"""
from qt import *
from resources import TRUE, FALSE
class WorkSpace(QWorkspace):
def __init__(self, *args):
apply(QWorkspace.__init__,(self, ) + args)
def addView(self, view): pass
def removeView(self, view): pass
def canCascade(self):
return TRUE
def canTile(self):
return TRUE
That didn't hurt, did it? We added a mere
four functions to the interface for our view managers. Adding
and removing a view from a workspace doesn't need our active
intervention, so we can simply add stubs for
addView and
removeView. And a workspace can both
cascade and tile, so canCascade() and
canTile() return TRUE.
The other functions we had to define in
TabManager, like
cascade() or
windowList are part of
QWorkspace — and we don't need to
reimplement them.