QT Newbie, Need help with Design Studio, Creator and possibly VS Tools
-
Hello,
I'm trying to design a database driven windows desktop software application. I've built 100s of websites but no software yet.
Research I've done so far points to QT as best way to build a GUI. (Found JavaFX too but couldn't seem to get that working in VS or NetBeans) So I downloaded QT Creator and QT Design studio, started doing tutorials. Ran into all sorts of confusing stuff.
-
I was able to build a simple app with Creator, and build a release version. However, it can't run alone. It's dependant on QT Libraries. I can't find instructions or tutorials that teach how to do this. I need my application to be like any other you could buy and install, runs independently.
-
Jumped into Design Studio, which is way nicer. However, all build functions are greyed out. So how do I build? Tried opening the design project in creator and that did not build correctly. You would think being made by the same company they would work together a little better, I would think they should both be one program... anyway, same as before, no good instructions or tutorials.
-
So I dabbled a little with Visual Studio 2019, and installed QT VS Tools (which i think is not made by QT?). Thinking i could bring in project from designer into VS and build it there. And again, no clear instructions or tutorials to do this process either. I did get it installed, but build did not work, it can't find QMake.
I'm really quite lost here, can someone point me to instructions (or give me some) or a tutorial project somewhere, that actually breaks down the complete start to finish process of starting a project and building it, that isn't referencing outdated software or so tech heavy it too conveluded to understand?
I'm no idiot, but teaching myself seems like a rabbit hole of minimal info buried under alot of useless info!
-
-
Welcome to Qt
You are yet to be initiated into the Qt community by building your own static Qt version, and if you are up to the task, build a static version with SSL enabled (I have not gotten that far, nor have multiple questions about this on SO been solved...so yeah).
But on a more serious note, I have always been meaning to jump into Design Studio, check this out, it should throw you into the deep-end with a life jacket or 2.
QT Tutorials
For Qt tutorials in general, I will advise going through most/all of VoidRealms' tutorials.QML:
For QT/QML introduction and programming (an example of QML is TeamViewer 15), I would recommend taking a look at KDAB's tutorials. (I have only gone through videos 1-5, but will be working through the rest as I am unfamiliar with QML).How-to & Examples
For learning Qt, you'll find yourself on the frenode #qt chat alot, but most people are just there but not active - however it is useful. You can find many examples of Qt by searching Qt [topic] example, but you need to take the initiative to try and figure out many things.Now the interesting bit.
Before I jump into that, please take note of [Qt licencing agreement] found here. Short and sweet is use open-source license to your heart's content, but you cannot package commercial software w/o a commercial license. All your products built with an open-source license should be publicly available such as qBittorrent (it comes to mind). (if anyone things I missed something in my TL;DR desc, feel free to add/reply to the thread)
Static Qt Build
So you have a choice of compilers to use, I selected MinGW - there were reasons for it, but all I can remember is MinGW was most favoured due to the least problems/issues.- You can take a look at VoidRealm's video on compiling a static qt version to get a feel of how things should be, but I felt there were things missing in his video - things skipped over which I thought may be helpful for a first time compile.
- Now this will be very important for you. In this post titled link text they explain what goes into building a static application (and its requirements)
- Building a static Qt version using the MinGW compiler (which comes preinstalled in the MinGW Qt-Creator downloaded version). Note, this script as is does NOT include SSL support in compiled binaries, so you need to manually link static openssl libraries - see this for more information about that.
Welcome to Qt and hope you enjoy your stay.
Also, if you feel like smashing your head against your k/b at times, you are doing Qt right ;)
-
@DominicNelsonOFS
I don't know what your requirements/goals are, but be aware that Qt Design Studio is a separate beast,you will need a commercial Qt developer license to distribute your UIs created with Qt Design Studio.EDIT Now I'm not sure this is true, I think there is some open source Community Edition available, possibly with some absent features.This forum is for Qt & Qt Creator. With them you can build/distribute/sell (at least for desktop, I'm not sure about mobile) without a commercial licence, so long as you abide by the mostly LGPL and occasionally GPL licensing. There is no need to static build, other users can install Qt runtimes and/or you can package these with your applications, unless you have some active requirement for statically build.
I think you need to decide whether you want the Qt Design Studio route or not before you start.
-
@CybeX said in QT Newbie, Need help with Design Studio, Creator and possibly VS Tools:
Short and sweet is use open-source license to your heart's content, but you cannot package commercial software w/o a commercial license. All your products built with an open-source license should be publicly available such as qBittorrent (it comes to mind). (if anyone things I missed something in my TL;DR desc, feel free to add/reply to the thread)
WARNING I am not a lawyer.
That's wrong, user code release depend on the exact licence you are using. GPL and LGPL have different scopes even if they share some stuff.
What you have to provide is all the modifications you made to Qt.
What these two licenses have in common is that your users have to be able to swap all LGPL/GPL libraries used with a different version. In practice it means that if you build static executables, you have to provide all the build artifacts for all the versions released so that your application users can change for example the Qt version used. Therefore, it's way less hassle to use the dynamic versions of the LGPL/GPL dlls.
-
Thanks guys, thats a good start.
To clarify, the software i'm building is a ERP/CRM/POS, to be used in my business, not to sell. (I'd get a licence if i were to sell it to other stores, if i can even build the thing.)
I do have multiple PCs and 2 stores though, so i want to build it with an installer, so the other pcs and shop can use it too. (Ideally i would like both stores to share the same main database too, but i don't want to get into cloud stuff yet.) So for it to be able to be installed and run independantly from QT would be great.
@JonB I liked working with Design Studio better, but if i can't build a static release it's pointless. Not sure why these are all greyed out....
-
If you are going with the centralized database then I would recommend building a web service that provides a REST API to access the data you need. That way you won't have to expose your database directly over internet.
-
It depends a bit on the language you would like to use server side.
-
@DominicNelsonOFS
What language are you familiar with? If you are not familiar with any languages, I highly and strongly recommend NOT to start with Qt. Rather go for something similar like NodeJS to get started with. Infact, there are a thousand and more tutorials for NodeJS to get started with a REST API. For what ever language you are most familiar, do a google search for[language] REST API tutorial
, you should certainly get a few hits.Get a REST server up and running (so you know atleast one works 100%) , then create your client using Qt (if you are up for it) then afterwards switch your server over to Qt. The latter I would rather advise to stick with something that is well supported and that works and is stable.
Just my 2 cents.
-
Well technically, for Qt the Cutelyst project is pretty nice.