views:

496

answers:

8

I need to develop an application for windows, and it needs to support skins. I am looking for a framework to use. I would much prefer to not use QT, because of it's licensing - GPL is not an option for me, and it is otherwise to expensive (and I can't put off developing this application till March, when QT is supposed to go LGPL).

Does anyone have any suggestions as to what I should use? Language options for me are C/C++, C# (preferably .Net 2.0 or lower), or Visual Basic. Something that used quasi-CSS for skinning, like QT does, would be a bonus. Open Source licensing (LGPL, MIT, etc) would be a bonus as well.

Thanks!

+1  A: 

If you are speaking about C++ then you can have a look at Ultimate++ which according to the docs offers skinning (never tried this feature). Unlike some other widget toolkits it attempts to make some use of the modern C++ features. And it is rather lightweight. As for the license - the "best" of all - BSD.

Anonymous
anyone who attempts to make use of modern C++ features in production code is retarded.
Do you happen to have any other insightful comments?
Anonymous
I have to say that is a pretty stupid thing to say. Why would you bother even developing in C++ if you didn't want to use the best it has to offer?
1800 INFORMATION
1800, replace modern with best and you're half the way there
It's skinning support is totally undocumented, and very, very complex
Lokkju
Thanks for the info, I haven't looked into skinning, only seen that it appeared in some release notes.
Anonymous
+4  A: 

I would have thought that "WPF" is the (obvious) best answer - unless your preference for .Net 2 or lower is unbreakable. To use WPF, you would be writing in either C#/VB/F# in .Net3-3.5 (or perhaps even IronRuby/IronPython that are coming out for .Net shortly).

Google for 'skins' and 'WPF' and you will get loads of matches. There is implicit but very good support for skinning in WPF.

For example: http://www.wpfdev.com/2008/04/09/creating-skins-for-wpf-controls/

PandaWood
WPF is unattractive because it requires .Net 3.0/3.5 - which most people have not installed yet.
Lokkju
But is there any reason not to install it? It is not a particularly onerous prerequisite for an end user, and coming direct from MS the average user is not going to be too put off by installing it. Also, many machines with auto-update enabled may have acquired it automatically.
xan
A: 

I will try Qt Designer and try the integrated CSS editor before taking a decission.

Anyway I will bet on Qt4

xgoan
A: 

Gtk support themes, this link provide more info to compile a theme http://dt.in.th/2008-08-25.gtk-compile-windows.html. Also you will find a lots of themes for Gtk , see here for example http://art.gnome.org/themes/gtk2.

If you want a commercial solution, for MFC/C++ there's BCGSoft, Codejock, for C#/.Net Infragistics. If you plan to do something very simple any of them can be enough, but if you want to do more complex UI they may start getting too much in the way.

Ismael
+1  A: 

Take a look at the DevExpress DXperience .NET WinForms Controls (especially "DefaultLookAndFeel" and "StyleController" cannot remember which of them it was). They are really powerful and there is the ability to to easily write own skins for your application. At the moment there is a special offer where you can get 60 DevExpress Controls free of charge.

http://devexpress.com/Products/Free/WebRegistration60/

Alexander
A: 

Another vote for DevExpress if you're doing C# development, and you're prepared to use a commercial product.

Have a look at their ExpressApp Framework product (XAF). This ships with a number of skins. The demo is reasonably good. The framework will generate applications for both Win and Web deployment.

It's not cheap, but depending on the application which you're trying to produce, it could save you a fortune.

A: 

I've ended up writing my own custom skinning support, specific to my application. Using a wxNO_BORDER with wxWidgets, and writing lots of controls from scratch, has given me the abilities I need.

In the future, I'll probably use QT, when it is under LGPL, or else WPF, when and if DotNet 3 is an option for me.

Thanks for all the responses.

Lokkju
A: 

I think XAF is the best choice now to rapidly develop a skinned application, and it supports both Windows and Web UI with a single code base. On the other side, if performance is what you concern seriously, you'd better try it yourself hardly before making final decision.

Tiendq