VCF - A Free BSD Competitor To Trolltech's Qt?
TioHoltzman writes "There's a new 0-6-5 release available of the VCF, aka the Visual Component Framework. This release has a slew of new features, and it looks like it could become a real contender against Trolltech's Qt toolkit. It currently runs on Win32 platforms with an active Mac OS X port underway. There's still lots to do, but it can run some of the samples
now on OS X. There are some screenshots here (1), here (2), and here (3)."
I have tried 3 different times to get this story submitted in one way or the other for the past several months (including one earlier today that got rejected within less than an hour!). They have all been rejected. Several other members of the project have also tried repeatedly to get a submission and those too got rejected. I don't like doing this anymore than you do but it seems that's what it takes to get a submission accepted.
In addition to the GUI stuff the VCF provides:
- Thread support with Mutexts, Conditions, and Semaphores
- File and file searching
- Streams
- Locale and Unicode support
- Text codes
- String messages for localizing your app
- Registry wrapper for app prefs
- A full fledged reflection API that is conceptually similar to the Java Reflection API. This allows for dynamically creating an object instance from only a class name, interrogating the instance for methods, properties, events, and interfances. The overhead for this is pretty minimal. You do have to register the class but this is pretty easy to do and doesn't require a separate pre-processor step like Qt's MOC does.
- A event system that is very similar to delegates in
.NET and extremely easy to use.
- Simple XML parsing support
All of this is plus, unlike Qt or WxWidgets, or FOX or whatever, the framework is broken into smaller pieces as opposed to one monolithic library. All of the above features are available in the FoundationKit and completely suitable for console/server developement, without any GUI baggage.Application scripting can be achieved by using the VCF's Reflection API's to wrap a script engine. For example, in one app I wrote I used the Mozilla JavaScript engine and made a VCF wrapper that simply hooked into the VCF's ClassRegistry. Thus any class that you registered with the VCF's runtime was also available for scripting with the JavaScript engine. Took about 200 lines of code. From what I have seen I would expect a Python wrapper to be equally easy to write.