[Mono-list] Qt-CSharp-0.3

Adam Treat manyoso@yahoo.com
Mon, 20 May 2002 12:20:31 -0700


Hello Everyone,

Qt-CSharp-0.3 has been released.  Changes from the 0.2 version are numerous.  
The binding generator itself has been rewritten in CSharp using the Mono CLR 
and associated libraries (http://go-mono.org).  Thanks Mono!  Other 
improvements include:

* A preliminary Signal/Slot mechanism has been implemented and the bindings 
now support custom csharp slots.

* Complete overloaded constructors and methods for the Qt API's default 
parameters.

* The object hierarchy is complete.  Interfaces have been provided for classes 
with multiple inheritance.

* Type mappings are in a much better shape, ie QString is now mapped to 
System.String and so on...  Work is needed to make this more efficient.

* Automatic boxing for methods which return a QObject.  More work is needed to 
keep track of these operations though...

* Enums have been greatly improved although Mono still has some trouble with 
nested enums.

* Numerous small bug fixes and improvements.

Things in the pipeline:

* Events and the Event handling mechanism are in the works.  The bindings will 
register with the QtC event callbacks and then custom event handling will be 
performed in the Qt-CSharp API.

* The namespace will likely be broken up into different sections along the 
lines of the PyQt bindings.

* Toying with the idea of changing the syntax of simple Qt properties/methods 
to use the csharp property syntax.  The benefits are a more closely 
integrated API, but this would change the naming scheme for many methods and 
could impact the enums.

* Along the same lines I am considering a changing the naming standard from 
Qt's camel case to the .NET standard pascal case.  Again, the benefits are 
conformance, but this introduces complexity into the generator and could have 
other effects.

I would like to thank all of the Mono project developers and specifically 
Dietmar Maurer, Miguel De Icaza, Mike Kestner, Paolo Molaro and Richard Dale 
for there help and ideas.
 
There is still quite a bit of work to be done before the bindings are stable, 
however some basic applications are now possible.  You can find the 
obligatory screenshot here 
(http://qtcsharp.sourceforge.net/qt-csharp-0.3.png).   This is a picture of a 
simple Qt-CSharp application with file menu, csharp slot and about message 
box that displays it's own source ;-)

Cheers,

Adam Treat