QT, wxWidgets, which to choose.
by Dave D · in General Discussion · 07/25/2005 (1:08 pm) · 14 replies
I have been assigned to make a cross platform program. Just curious, does one of these, Qt or wxwidgets, have advantages over one another. I have been researching both, but thought I would get a little input first.
#2
Thanks for the input!
07/25/2005 (2:37 pm)
Price is almost always the deciding factor. I must have missed the price page, thanks for the link. I guess the decision is made. Thanks for the input!
#3
We use Qt at my workplace with some 2D games (like this one).
A major advantage for us was that it was fully themable and that it works well on MacOS X. I use WxPython when I work on the Nebula Device, and its support for OS X is not always that great. An example of the theming can be seen in some of our help screenshots (here, here and here. You can't do that sort of theming with WxWidgets.
With the coming of Qt 4.0, not only will it remain fully themable, but they've totally rewritten how widgets are drawn so that you can readily swap out the rendering backend and use OpenGL or your own code rather than traditional widgets. I'm looking forward to seeing how this can be integrated with an existing rendering engine to have the full power of Qt's widget set inside the game.
(An alternative here would be to look at things like Cairo and writing a Cairo-backend that uses some rendering engine. GTK+ is switching over to Cairo. Mozilla's rendering engine will have a Cairo backend as well in the near future, opening up some pretty exciting possibilities.)
Overall, I've been using Qt now for about 18 months and it has been great. There have been very few bugs that hurt and Trolltech has had patches for most of them right away (or already released and I just hadn't upgraded yet).
- Bruce
07/25/2005 (7:05 pm)
Even though you've made your choice, it is probably worth expanding on this subject for posterity.We use Qt at my workplace with some 2D games (like this one).
A major advantage for us was that it was fully themable and that it works well on MacOS X. I use WxPython when I work on the Nebula Device, and its support for OS X is not always that great. An example of the theming can be seen in some of our help screenshots (here, here and here. You can't do that sort of theming with WxWidgets.
With the coming of Qt 4.0, not only will it remain fully themable, but they've totally rewritten how widgets are drawn so that you can readily swap out the rendering backend and use OpenGL or your own code rather than traditional widgets. I'm looking forward to seeing how this can be integrated with an existing rendering engine to have the full power of Qt's widget set inside the game.
(An alternative here would be to look at things like Cairo and writing a Cairo-backend that uses some rendering engine. GTK+ is switching over to Cairo. Mozilla's rendering engine will have a Cairo backend as well in the near future, opening up some pretty exciting possibilities.)
Overall, I've been using Qt now for about 18 months and it has been great. There have been very few bugs that hurt and Trolltech has had patches for most of them right away (or already released and I just hadn't upgraded yet).
- Bruce
#4
Personally, I would love to have the licenses for Qt. It's much better.
07/26/2005 (2:04 am)
I will have to second the lack of support for wxWidgets on the Mac. I'm working with the Mac primarily now, after years of PC work. I wanted to write something cross-platform and started using wxWidgets as a basis. The Mac support is really not that great. Yes, you can get things to work, but you'll not be using Cocoa. Almost everything still uses Carbon bases objects. I've also had issues with the clipboard.Personally, I would love to have the licenses for Qt. It's much better.
#5
I've been doing a little bit of reading on the two last night trying to decide which to learn first, from what I've seen QT has much better integrated design support on Linux. Its pretty much like using delphi/kylix, open a form, drag components onto it and wire up the events. wxWidgets doesn't have this kind of integration, although it does have other standalone gui builders such as wxGlade and DialogBlocks.
Coding wise, I read that wxWidgets is slightly easier/quicker to use where as QT is better for large applications due to the more flexible framework. I can't confirm this though as I've yet to have more than a quick play with either.
07/26/2005 (3:55 am)
If you're doing an open source project then QT4 or wxWidgets will be fine, both are free for gpl'd projects. If however you're wanting to keep things proprietory then wxWidgets is still free (been LGPL) where as QT requires a license fee which isn't all that cheap. Then again if your selling your end product the license isn't too steep.I've been doing a little bit of reading on the two last night trying to decide which to learn first, from what I've seen QT has much better integrated design support on Linux. Its pretty much like using delphi/kylix, open a form, drag components onto it and wire up the events. wxWidgets doesn't have this kind of integration, although it does have other standalone gui builders such as wxGlade and DialogBlocks.
Coding wise, I read that wxWidgets is slightly easier/quicker to use where as QT is better for large applications due to the more flexible framework. I can't confirm this though as I've yet to have more than a quick play with either.
#6
As far as the wxGlade goes, I cannot comment since I haven't used it. I have used DialogBlocks extensively. It's not what I would call a production product. It's nowhere near the quality of something like Visual Basic, Delphi or Kylix. It's more akin to a hack. It definitely works, but its rigidity can get pretty frustrating at times. Also, I've crashed it on numerous occasions, just trying to get an app written. And for adding a custom class to the palette? Wow, that appeared complicated. I didn't even approach that.
But, hey, if money's tight, then you can't get better than free.
07/26/2005 (5:16 am)
Yes, you are correct about wxWidgets being slightly easier than Qt for very small apps. Once you get used to it, however, writing Qt for even small apps becomes second-nature.As far as the wxGlade goes, I cannot comment since I haven't used it. I have used DialogBlocks extensively. It's not what I would call a production product. It's nowhere near the quality of something like Visual Basic, Delphi or Kylix. It's more akin to a hack. It definitely works, but its rigidity can get pretty frustrating at times. Also, I've crashed it on numerous occasions, just trying to get an app written. And for adding a custom class to the palette? Wow, that appeared complicated. I didn't even approach that.
But, hey, if money's tight, then you can't get better than free.
#7
A Qt 4.0 free (GPL) version has been released for Windows.
07/27/2005 (2:31 pm)
You should also note that if you release your code under the GPL, you can use Qt for free both on UNIX and Windows (since Qt 4.0).A Qt 4.0 free (GPL) version has been released for Windows.
#8
For anyone who uses Qt 4.0, please let me know of the milestones you've experienced.
A link that I found that looks promising, doc.trolltech.com/4.0/
Thanks,
~Tatjana
07/27/2005 (2:59 pm)
I also intend to create a cross platform project. The project is small, but the use for it will be huge.For anyone who uses Qt 4.0, please let me know of the milestones you've experienced.
A link that I found that looks promising, doc.trolltech.com/4.0/
Thanks,
~Tatjana
#9
07/28/2005 (5:05 pm)
I've been using wxWindows for Torsion. I specifically wanted native controls in Windows. From what i've seen OSX apps and Linux apps can look pretty good too.
#10
@Tom Do you know of a good Resource editor for wxwidgets, The only one I found hasn't been updated since 2002. Honestly I haven't looked hard, trying to get the jist of it first.
07/31/2005 (7:06 pm)
I started using the glp'd version of QT and wxWidgets, both seem very nice, but I still think that wxWidgets is going to win out simply because of the licensing issues. This project will probably never be released to the public, but in the future, I will want to release stuff. So I would rather go the lgpl. Thanks everyone for the input.@Tom Do you know of a good Resource editor for wxwidgets, The only one I found hasn't been updated since 2002. Honestly I haven't looked hard, trying to get the jist of it first.
#11
07/31/2005 (7:09 pm)
@Fail66 - I assume you mean something to make dialogs? I haven't looked in a long while, but last time i didn't i didn't find something i felt was better than coding them by hand. If your handy with the wxBoxSizer working it by hand isn't so bad.
#12
I mean, QT seem to let you use interfaces displayed by opengl, is'nt it?
Does wxWidget allow that too?
I know it can display opengl in wxGlframe or something like that, but can the standart buttons, dialogs etc be displayed in that opengl Frame?
08/01/2005 (3:59 am)
What if i want an interface in the game?I mean, QT seem to let you use interfaces displayed by opengl, is'nt it?
Does wxWidget allow that too?
I know it can display opengl in wxGlframe or something like that, but can the standart buttons, dialogs etc be displayed in that opengl Frame?
#13
In that case, you'd want something like Qt4, the GUI code in Torque, Nebula or other engines, or to port something like CEGUi over, or something else (like a Cairo backend and a toolkit that runs on Cairo like CVS GTK+).
- Bruce
08/01/2005 (10:47 pm)
Joel,In that case, you'd want something like Qt4, the GUI code in Torque, Nebula or other engines, or to port something like CEGUi over, or something else (like a Cairo backend and a toolkit that runs on Cairo like CVS GTK+).
- Bruce
#14
08/03/2005 (4:43 am)
That's what i thought........thanks for the confirmation.
Torque Owner Louis Dargin
Overall, the two are so different in terms of price, features, and support that the choice would normally be dictated by business realities rather than technical differences.