[Kde-bindings] Hacking moc-generated code
Luca Fascione
lukes at wetafx.co.nz
Wed Aug 31 06:46:51 UTC 2005
I don't think static means constant across *time*, it just should mean
constant across instances of the class,
i.e. you *can* change the metaobject while it's running... :-)
And that's the way TCL/Qt will work (when I finally find the time to sit
down and actually write it).
The Qt runtime calls the metaobject stuff all the time, so I don't think
it caches the answers it gets back...
And there you go, done addition of methods at runtime: just reimplement
all the stuff with an added "addMethod()" method that will insert your
new method in some data structure and you're done.
Now, I obviously haven't tried it... :-)
My 2 cents
Luca
Eric Jardim wrote:
> 2005/8/31, Marcus <mathpup at mylinuxisp.com
> <mailto:mathpup at mylinuxisp.com>>:
>
> I would like to hear more about this because getting signals and
> slots working
> seems to be one of the hardest parts. I understand that Qt 4.x
> makes some
> changes, but I also gather that there is still a great deal of
> voodoo in the
> moc-generated code.
>
>
> Well, actually, signals and slots are working normally in python-qt4.
> I used a simple approach. I created dispatcher classes for each type
> of slot. It is impossible to connect a signal to a Python function.
> There must be a C++ slot. So I have a dispatcher class for every
> possible signature ex:
> PythonSlot_int_int -> void slot(int, int)
> and so on. Of course I have a script that write this code for me. You
> just have to say (textualy) which signatures you want to generate.
>
> It is the only way I see to make it works. The limitation of this
> approach are new types of slot signatures. Well, we can solve this
> creating a central registry for slot dispachers. Hey, remember now...
> I've made this :) But needs more testing.
>
> Returning to MOC, I just need to play with it, only because if I want
> to run Python extended classes (of QObject/QWidget) on C++ (like
> embedded C++ or using Python objects in QtDesigner). I am studing it,
> but I am not very sure that it will work.
>
> The problem is that the C++ metaobject is static. We need dynamic
> metaobjects! And that is the whole trick.
>
>
> When I have worked on schemes to interact with signals and slots,
> I have
> always been torn between using things are not part of the Qt API
> whose
> details can only be discovered by reading the files that moc
> generates OR
> writing portable but complicated, bulky code with a great deal of
> potential
> overhead. Qt goes to great lengths to make C++ less dangerous for
> programmers, but many of the techniques used make it difficult for
> non-C++
> languages to use Qt.
>
>
> Sure, but I think it is getting better. Try python-qt4 source and see
> what I did. I'll continue studing the moc files.
>
> [Eric Jardim]
>
>------------------------------------------------------------------------
>
>_______________________________________________
>Kde-bindings mailing list
>Kde-bindings at kde.org
>https://mail.kde.org/mailman/listinfo/kde-bindings
>
>
--
Luca Fascione
Pipeline Engineer - Weta Digital
+644 380 9170 (x4855) / +64 21 0764 862
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.kde.org/pipermail/kde-bindings/attachments/20050831/750169b3/attachment.html>
More information about the Kde-bindings
mailing list