[PyKDE] Qt4 and uic - dynamic generation

Phil Thompson phil at riverbankcomputing.co.uk
Fri Jul 22 13:16:37 BST 2005


> -----BEGIN PGP SIGNED MESSAGE-----
> Hash: SHA1
>
> Jeremy Sanders schrieb:
>> On Thu, 21 Jul 2005, Sebastian Kügler wrote:
>>
>>> Not sure if I'd like to do this ...
>>>
>>> * I actually like the way it is done right now, you can easily
>>> subclass the
>>> generated python code, and I'm not sure how this should be done when
>>> using .ui files directly. Furthermore, it might add overhead to do
>>> this at
>>
>>
>> I wasn't suggesting this would replace the existing subclassing.
>>
>> What I'm suggesting is that you could have some function which returns a
>> class which you could then subclass, e.g.
>>
>> MyDialogBase = qt.LoadUI('foo.ui')
>>
>> class MyDialog(MyDialogBase):
>>
>>    def foobar(self):
>>       ...
>>
>> Personally I think this is a lot nicer than having generated python code
>> in my source tree. It means that someone could run a python script and
>> it would just work, without having uic and so on installed.
>>
>> If this is what QWidgetFactory does, then that's great!
>>
>
> Hi,
>
> you have to be careful with QWidgetFactory, because it creates an
> instance, not
> a class. One Problem is, that you cannot override event handlers in it,
> but only
> use signals and slots.

class MyDialog:
    def __init__(self):
        self.d = QWidgetFactory("d.ui")
        self.d.event = self.event

    def event(self, e):
        # Do your thing
        pass

Not pretty I know.

Phil




More information about the PyQt mailing list