Qt 5.6.0 released
blog.qt.io
blog.qt.io
For internal tools/prototypes I was using JUCE for my UI needs, which is much smaller in scale that Qt, but it produced very slim executables, was fast and good enough for my needs (plus I loved the API). I still think this a great framework for small UIs and tools, especially if you're working with sound.
Then I took a two years break from C++, moving to full time Objective-C, then Swift 1 and 2, working with and actually enjoying the power of UIKit.. I've developed several UI-heavy apps for iOS and some OSX stuff.
This year I came back to C++ and coincidentally, Qt.
What a nice come back this is. I'm thoroughly enjoying Qt (I'm currently using 5.4). The development is smooth and intuitive, I don't have to spend hours reading documentation and articles, it kind of just flows by itself (not so at all with UIKit )
After trying out many frameworks and kits, If I had to pronounce a verdict for the best cross platform UI framework - then Qt has no competition, both in terms of features and in terms of pleasure.
I hope I can say the same about 5.6, will definitely try it out.
Edit: let me know if you need a Qt dev, as my current project is closing to an end and I would love to continue using Qt . (message codershaman on reddit).
In Qt 5.4 I had to add
CONFIG += c++11
to the .pro file.
I haven't used it, but it seems Qt 5.5 supports C++ 14.
Plus probably some other (political) reasons which I don't know or remember too well..
For my research I used PyQt/PySide to build lots of UI components for controlling my lab equipment, visualizing my data and running code in an interactive way. While doing this kind of thing using a native toolkit (MFC, GTK) would have been possible, it would probably have been much difficult and time-consuming.
For me, Qt is a great example of beautiful and very good software architecture: Creating a cross-platform UI kit that works on platforms as diverse as Linux, Windows, MacOS, Android and Symbian and integrates well with the peculiar set of features of each platform is a daunting task. Qt as a UI abstraction layer solves this really beautifully, and both the philosophy and the architecture of the code is very well thought through. And in the last five years the developers added many interesting ideas (QML, Javascript support) that compete with and sometimes go beyond what's available in many native toolkits. So if you like reading good code you should have a look at Qt.
Neat. What kind of equipment were you controlling with? Is any of your code available? (I'm doing the same these days)
However, PySide is being developed again for Qt5: https://github.com/PySide/pyside2
At the moment there are several community efforts but most of them are half baked and have little adoption :(
With Lazarus and FreePascal you could do that in minutes.
- Allow programmatic resizing of dock widgets
- Allow dropping dock widgets into floating docks
- Allow the user to re-arrange tabified docks
I haven't tried it out yet, or seen a demo, but in my previous company we spent some time finding out a solution for docking that mimicks to a degree what Visual Studio did, and we somehow did it, but it's not as good still as Visual Studio.It was very important for the artists/level builders/scripters to be able to use 3 monitors efficiently (something that the browser lacks in general), and a window spread on three of them is not what they needed.
They really wanted one monitor with say the level (3d map), another monitor would have all assets for preview/selecting, and a third one for additional debugging.
Then when you close, and open again the app it should remember the positions, sizes, etc.
Autodesk Maya/MotionBuilder uses Qt, so if they switch to this version they'll benefit from it.
As an alternative solution, but only in Python (PyQt, PySide) land, there is https://github.com/nucleic/enaml
http://nucleic.github.io/enaml/docs/examples/ex_dock_area.ht...
It's beautiful!
Awesome job Qt folks!
Qt is split into many sub-libraries so you only link to what you need. For example, one of my projects (pushpin.org) uses Qt but only links to the core and network libs; no GUI/X11/etc.
For me, the only drawback is not being able to expose a go object as a model, involving a bit of back and forth, but the rest is very very clean.
But what I really appreciate about Qt is the entire system was designed from the ground up by grownups who understand how to deploy software and have it last for over a decade. most of the frameworks today feel like they were developed by kids with little experience to solve limited problems now ,and then fall over as they evolve into something more complex.
Qt 5.6 will be on my todo list for further experiments.
https://blog.qt.io/blog/2016/02/16/the-qt-company-joins-khro...
There is a bit of a running joke about Qt 5.6 because it was branched (i.e. feature freeze!) in August of last year.
The real show stopper for me with Qt is its licensing though. LGPL is a no-go on closed mobile platforms and its commercial license at $350/month is completely unreasonable for smaller developers. Really, the LGPL is a horrible license because of its clause that you must be able to change out the LGPL portion of the software.
Also almost every time there's a thread about Qt I see a bunch of (presumably) web developers start talking about React. In fact, in pretty much every thread talking about any similar framework someone has to mention React. I'm not a web developer and I've only looked at React briefly but I guess I just don't get it. Could someone explain succinctly what the big deal is? I've used Qt a lot -- what do all these people mentioning React want Qt to offer? Why is it brought up so often? Is it really that revolutionary? Almost seems like a cult.
https://news.ycombinator.com/item?id=4302517
May be helpful to you.
Sparrow made available on a website the necessary binaries for the user to relink if they so chose thus complying with the terms of LGPL.
For an iOS project, you'd provide a link to the GitHub/Sourceforge page or whatever. It's true that the end user would have to get a signing key from Apple to exercise their rights under the LGPL, but IMHO that still meets the spirit of the law. As far as I'm concerned my obligation ends when I provide the code. Some will disagree (hence GPLv3), but the same problem would exist if I had used a language (or targeted a platform) for which there were no free compilers, and nobody seems to have a problem there.
Is the QT team working on official React API support with JSX ? This will make universal UI development a breeze.
- http://lists.qt-project.org/pipermail/development/2016-March...
- https://github.com/benlau/quickflux/
Now, regarding what's actually being done by Qt Company on the UI side, there are the new qtquick controls (currently namespaced to 'labs' as it's still a work in progress), see https://www.youtube.com/watch?v=FqjabvHSiZk and http://blog.qt.io/blog/2015/11/23/qt-quick-controls-re-engin...
The QuickFlux is promising start for the Flux pattern in Qt.
I was thinking more on the lines of React Native [1] like support in Qt.
Essentially, having React render() function backed by Qt Quick Controls?
I know :) , and I searched for that too when I joined a QML project after working on a React one. So far there's nothing like that, thus the "around" in my comment.
Now, about why no one tried that yet, I'd propose that newcomers (including me) want it but don't know the platform well enough to build it, and experienced C++/Qt-ers could try it, but they don't care about new frontend stuff like React the slightest bit, as they are used to their own thing (which works well too!).
It's just two different technical worlds with different working solutions, and little interest to pick ideas from the other side of the fence. That being said, I'd love to be proven wrong.
Not exactly the same as React render(), I have started an experimental project to update QML UI by diff:
QSyncable - Synchronize data between models
https://github.com/benlau/qsyncable
p.s In fact, Qt Scene Graph is somehow similar to React. Both of them will only apply the changes to screen. React manipulates the DOM, but Qt manipulates the OpenGL render pipeline.
(Eng. background and software dev full time)
My only concern is availability of 3rd part components like data grids, reporting and other widgets. There are many of them for WPF but I am not sure they exist for Qt. Can Qt interact with .NET components?
Any particular reason why? I know a lot of people doing the opposite (because there are so many more web dev gigs out there).
I'm not as good as many people here I just lurk most of the time, although, I've been doing web development for years, mostly self-taught. I had the opportunity to freelance as well.
Most of my drive to learn C++ is curiosity and the need to be able to write/understand C++ code because I wanted to work with it, I've been meaning to get an Arduino kit too. I'd love to enter the field in C++ as junior dev if possible, at the same time I won't neglect web development if the opportunity is there.
As I said before, I want to expand. I won't just "throw away" web development either. Lastly, I'm not in the US, the job market here is pretty terrible, and have found it hard to look for a place to work. I can work in the U.S, but sadly being both college student + no cash to do much it's pretty hard to pull off.
As for limitations, large applications with custom QML may become hard to maintain. I'd expect web development to face the same issue, not sure how they've solved it. Basically refactoring is always a risky operation since you'll find out the breakages only at runtime. For small/medium apps this won't be a problem, but I saw a project with multiple teams on the same codebase for years, and it did cause quite some issues.
Then again, there was no alternative with that project. Widgets wouldn't have been an option at all.
I've used it in early Qt 4 times to learn Qt myself, but since it's been a while, I can't attest if the documentation is still as good as it was back then, but a quick gloss over it suggests that it is still as extensive. They seem to be focusing the tutorials on their IDE (Qt Creator), but you can also use it with other build systems (preferably CMake) if you prefer the CLI.
[1]: like this one: https://bugreports.qt.io/browse/QTBUG-42985
:(
"In addition, Pepper plugins (PPAPI), such as Flash, are now supported."
Ugh. :(
It's dual licensed and it is rather prominent everywhere on their webpage that it is a dual licensed Open Sourced / Commercial project. I have found Qt to be very Open/Free friendly, unless you have other evidence to prove other wise?
If your referring to the commercial aspect I'm not sure since I only use the LGPL license.
[1] The KDE Free Qt Foundation maintains a legal contract between KDE e.V. and the owners of Qt that mandates that, should Qt not see a new release for longer than 12 months, the last version of Qt be re-licensed under a permissive BSD-style license.