Hacker News new | ask | show | jobs
by Elv13 1444 days ago
Qt (the legacy Qt::Widget variant) is quite productive for quick and dirty GUIs. You can do 95% of basic dialogs in QtDesigner and then connect the signals to your code and vice versa. The code can be Python or C++. It can also be mapped 1:1 into SQLite tables without any external libraries, which is handy for basic forms or data apps.

QML also has GUI design tools, but it takes much longer to learn and isn't very good at simple GUIs. However it's better when you need to deploy on Android (iOS requires the paid version).

One thing to keep in mind if the LGPL3 license. If the app isn't distributed, then it's fine, but if distributed, it has to be dynamically linked with some ways of swapping the .so/.dylib/.dll

1 comments

Qt is fantastic, I've used it with Python using the semi-commercial PyQT and open source PySide which are largely mutually compatible. The example projects that come with it are a great way to get started and the documentation is world class. I found it much easier to work with than the native Windows options 10 years ago, but haven't really looked at anything from MS since.
I've often found Qt GUIs to be bloated and slow. Not sure whether that's brought about by Qt inherent overheads or bad design by those using Qt.
That may be so, but I've used very performant software that used Qt. The desktop version of Google Earth was a Qt application and was amazing. The whole KDE desktop is Qt, as are Ableton Live, Mathematica, and several Adobe and Autodesk apps. If a Qt app has performance issues it's unlikely to be down to the UI layer, unless they're doing something particularly weird. Having said that I have no experience of QML or how it performs.