C++ X-Plat

WxWidgets or QT (or something else) for X-Plat Desktop C++ apps?

Discuss.

@eugenedakin ?

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.

1 Like

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?

1 Like

Thank you, @scott .

I’d actually prefer something paid with support, but Qt is way out of line.

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.

1 Like

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.

Looks like it might support Hot Reload. Video is from 2012, though…

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? :slight_smile: