WxWidgets or QT (or something else) for X-Plat Desktop C++ apps?
Discuss.
QT has a interesting licensing, could be a huge problem. QT is a custom draw GUI emulation.
wxWidgets is free, open-source and uses the platformās native API.
I have spent some time working with wxWidgets and am quite happy with it. If you are familiar with C++ programming and have a basic understanding of pointers, then it is nice to work with. The only negative is that it would be nice to have a visual IDE, similar to what Xojo has for dragging-and-dropping controls. I have not programmed much with QT due to the expensive license, which is the only part of QT which is holding me back. It appears that both QT and wxWidgets are mature and works well.
I believe that due to the influx of funds with QTās license, that QT is likely more refined and has more controls. I would like to work more with QT, but I just canāt justify the license cost. Here is a table that I quickly put together:
wxWidgets | QT | |
---|---|---|
Price | Free | $233/month per user |
License | Almost everything | Very complicated |
Windows | Yes | Yes |
OSX | Yes | Yes |
Linux | Yes | Yes |
Native | Yes | Mostly |
Android | Yes | Yes |
iOS | Yes | Yes |
Speed | Fast | Fast |
Audience | General Programming and commercial | Business |
Is it maintained? | Yes | Yes |
Is it mature | Yes | Yes |
Which is more popular | Less popular | More popular |
Learning curve | High | High |
Create native executables | Yes | Yes |
wxWidgets is native to the operating system, where QT is mostly native. There are controls that exist in QT that are not available on various Operating Systems, which means that these are not native. The benefit of native controls is that you can use a ādeclareā to modify them.
I would suggest that you try and create a simple application in both wxWidgets and Qt and then see which one you like.
I agree with your assessment.
a little history on QT. it was by a company called TrollTech (or something like that). And they had dual licenses for a while. FREE for OSS software, and $$$$$$ for Commercial. Nokia bought the company to get the toolkit under their belt as they used it in several of their apps that they sold. Like what happens to most large companies buying small companies to control a product, things got āless goodā, so Nokia sold off QT to someone else. Might have been back to the original TrollTech owners. Not sure as by then I didnt give a hoot.
QT makes nice GUIs. QT is not cheap. QT takes some serious learning to get it working right. QT has bindings/toolkits/SDKs for may languages.
good luck on finding a good OSS/FREE ui toolkit/SDK.
Thanks, @eugenedakin . I too thought Qt was expensive and the licensing weird. I usually find free software to be frustrating because it usually doesnāt have official support.
What about wxFormBuilder or Codeblocks?
that is very fair.
Qt has a small business license that costs only $499/year. To qualify, your business must have less than $250,000 in annual revenue.
Iād also add that you may not even need to purchase a commercial license from Qt. The open source license allows you to make commercial software (i.e., for profit, closed source) and thereās a large number of developers producing such commercial apps using Qtās free, open source license.
What is the limitations to the free model then?
Actually it does not. Sure, a lot of people do that but they are risking some legal action.
And I only am interested in software that I can use to create software to sell. Open Source, not only typically has no support, it also limits my ability to use their software in my software legally.
Then buy a commercial license. Problem solved. Again, you can create commercial software with the LGPL version of Qt, but if making sure you comply with the terms is too cumbersome to keep track of, then the $499 small business license eliminates those concerns.
You donāt know what youāre talking about. There are many closed-source, commercial applications using Qt under the LGPL license and they arenāt doing anything even remotely illegal. Itās fully allowed. There are LGPL libraries used in literally thousands of commercial applications, from small independent developers to the giants like Adobe, Apple, and Microsoft. Xojo itself incorporates LGPL code (e.g., parts of WebKit/Chromium are LGPL).
Reasons to buy a commercial license from Qt include getting official support, being able to use certain add-on modules that are not LGPL-licensed, being able to statically link to the Qt libraries rather than dynamically link, and not having to comply with the (not particularly burdensome) terms of the LGPL.
But you absolutely are not required to buy a commercial Qt license to produce closed-source applications with Qt and sell them.
Of course. But is it $500 better than wxWidgets? Thatās kinda what Iām trying to determineā¦
The last time I used Code::Blocks was a few years ago and it could only create 32-bit executables, and it looks like the recent version can build 64-bit programs. This makes Code::Blocks an option.
I have the fully licensed version of wxFormBuilder and it is a nice program, and unfortunately is dated. This means that code created in C++ that is copy-and-pasted into a program does not work. I can manually copy and adjust code from wxFormBuilder and get it to work, and thatās usually after about 8-hours.
Has anyone else used a recent version of Code::Blocks?
Ok. I heard about Juce years ago, but because I didnāt understand C++, I promptly forgot about it. Well, even though it was originally designed for audio software and plugins, it looks to be VERY full-featured.
It looks like it has a has a template chooser which exports the code to your IDE of choice. Not sure if it has an actual designer, but it at least has a TON of controls.
Have a look at this. Looks VERY impressive. Iām planning to give this a try when I get a chance.
Thoughts?
I remember looking at it some time ago, I just find sound apps, and sound plugins. Not a single example of other kind of apps, GUI was custom drawn with skins but didnt see something āNative likeā. So, not sure that is the right tool to make general purpose development.
Have you find any real world example of a business app, POS or something like that made with this?
thanks, @Ivan . Just because it has libraries for sound design (that was certainly the reason for itās existence originally) I donāt know how that would negate itās GUI design tools for any other purpose. Can you think of a reason that their GUI controls wouldnāt work for any other purposes?
BTW, Iām convinced that only programmers care about āNative Lookā. Users donāt even know what that means!
Nowadays, it would be like saying āNative Webpageā. Whatās that?