File: loader.py

package info (click to toggle)
python-qt4 4.0.1-5
  • links: PTS
  • area: main
  • in suites: etch, etch-m68k
  • size: 18,632 kB
  • ctags: 2,639
  • sloc: python: 29,409; sh: 5,646; cpp: 3,168; xml: 149; makefile: 109
file content (30 lines) | stat: -rw-r--r-- 959 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
import qobjectcreator
import logging

from PyQt4 import QtGui, QtCore

from PyQt4.uic import uiparser, properties

DEBUG = logging.debug

class DynamicUILoader(uiparser.UIParser):
    def __init__(self):
        uiparser.UIParser.__init__(self, QtCore, QtGui)
        self.wdb = qobjectcreator.QObjectCreator()
        self.wprops = properties.Properties(self.wdb, QtCore, QtGui)


    def createToplevelWidget(self, classname):
        if self.toplevelInst is not None:
            if not isinstance(self.toplevelInst, self.wdb[classname]):
                raise TypeError, ("Wrong base class of toplevel widget",
                                  (type(self.toplevelInst), self.wdb[classname]))
            return self.toplevelInst
        else:
            return self.wdb.createQObject(classname, self.uiname, ())


    def loadUi(self, filename, toplevelInst = None):
        self.toplevelInst = toplevelInst
        return self.parse(filename)