5 ms·
Qt used to be an absolutely awesome C++ framework. Then Nokia happened, and it turned into a weird Rapid Development Environment™ for Symbian®©. Does anyone ha
by nikanj 9y ago
Qt used to be an absolutely awesome C++ framework. Then Nokia happened, and it turned into a weird Rapid Development Environment™ for Symbian®©.
Does anyone have up-to-date experience with Qt? It's quite clear Symbian is no longer the main target, but did they ever get back to treating C++ as a first-class citizen, or is it still all about QML?
- majewsky 9y agoNot sure what you're talking about. Qt 5 didn't remove anything that was there in Qt 4 [1], and added quite a few nice things like native Wayland support and more OpenGL integration. Sure, the main development focus is on QML etc., but that's mostly because desktop is a more mature platform than mobile. [1] Except for the QtWebkit to QtWebengine transition perhaps. I haven't followed that very closely.
- nikanj 9y agoThe main development focus is the very thing I was curious about. I remember Qt being slow to support new things eg. high dpi, unless you were using QML. Getting the "feel" of a company's priorities can be hard, if you're not actively using their platform. I was hoping someone on HN had a somewhat realistic picture of where Qt is going these days.
- casione 9y agoIt looks to me like they're very underfunded and have completely lost focus. The high DPI "debacle" is a good proof of it.
- shaan7 9y agoSure /s. We have a Qt app with GUI completely written in Qt. Scales pixel perfect on HiDPI out of the box as long as you make sure to not hardcode pixel values.
- seba_dos1 9y agoThings have definitely accelerated since Nokia regarding desktop platforms. High DPI support has gone through a few iterations and is working pretty well now. Also, Qt is now using open governance model. Qt Quick is still important, but I wouldn't say it's the single, most important thing it used to be anymore.
- carlos22 9y agoNow the focus of QML is mostly embedded where it really shines. Desktop and mobile is still possible with qml.
- jhasse 9y ago> native Wayland support It's still pretty unusable though :/ The default for Qt apps is via Xwayland in Fedora for example.
- majewsky 9y agoI'm using some KDE apps under Wayland (Sway, to be precise), and they're definitely not running under Xwayland (as confirmed by `xlsclients`). There is a lot of scaling confusion, but it's far from "unusable". Just not pretty.
- jhasse 9y agoMust have been some bug with my configuration then: There were scaling issues resulting in some buttons being unclickable.
- pjmlp 9y agoAll new APIs are done with focus of improving the QML experience. For embedded and mobile deployments, QML is the only option. If you try to use a common C++ widget dialog, you will get a tiny desktop like window, regardless of the platform.
- eql5 9y agoEver heard of QCoreApplication::setAttribute(Qt::AA_EnableHighDpiScaling); (to be set before creating the QApplication instance).
- pjmlp 9y agoHow does it help, when displaying a tiny file selection dialog on an Android device? https://bugreports.qt.io/browse/QTBUG-42491 https://bugreports.qt.io/browse/QTBUG-42491
- eql5 9y agoThese file dialogs are not for mobile! But it's easy to make your own ones, please see: https://gitlab.com/eql/EQL5-Android/blob/master/screenshots/REPL-file-dialog.png https://gitlab.com/eql/EQL5-Android/blob/master/screenshots/... The above is on an android tablet; but it displays perfectly fine on phones, too. Just see the sources of the above project for implementing such a dialog: https://gitlab.com/eql/EQL5-Android/blob/master/examples/my/qml/ext/FileBrowser.qml https://gitlab.com/eql/EQL5-Android/blob/master/examples/my/... https://gitlab.com/eql/EQL5-Android/blob/master/examples/my/qml/ext/FileDelegate.qml https://gitlab.com/eql/EQL5-Android/blob/master/examples/my/...
- joezydeco 9y agoQt5 dropped the QWindowing Server for embedded platforms.
- dkersten 9y agoI'm of a different opinion: that Qt was good, but became great with Nokia. QtQuick (with its hardware-accelerated scene-graph based rendering system for rich UI's with ultra smooth animation) is awesome and QML is a very nice and pleasant way of declaratively creating UI's. Sure, you'd want to minimise the use of javascript, but QML + C++ is a pleasant experience, in my opinion, and much nicer than QWidgets.
- distances 9y agoI agree. Plus people tend to forget it was Nokia that relicensed Qt to LGPL, which was a massive gift for most developers. I really liked QML myself when I was using Qt, but even many of those who don't care about QML are likely enjoying the benefits of the more liberal license.
- IshKebab 9y agoStill all about QML. QtWidgets (C++) is well maintained but it's clear that they aren't really focusing on it. I really wanted to like QML. It gets lots of things right, but it's just so unfinished, and a few things are really weird, like ... I'm pretty sure object IDs sit in a global namespace and can be accessed by any component. A child component can access its parent, which just screams spaghetti. And as far as I know there's still no way to have text in a custom widget. I wanted to make a QML graph widget. The lines are easy... but labels. The API for that is still private. Another example: I wanted a log window, like a compilation log or something. There's only one QML widget for that and the only operations you can do on it are append(string) and remove(offset, length). You can't remove the first line of text for example. I ended up having to keep a separate array of line lengths, it was a huge hack.
- ajuc 9y agoI kinda like QML. I liked qt3 for desktop apps, and pyqt was pretty sweet, but qml frontend and C++ backend is even better.
- digi_owl 9y agoMy impression was that QML was already happening before Nokia got involved.
- seba_dos1 9y agoQML was heavily inspired by EFL's Edje and the QEdje project, which was started in the middle of 2008. Qt Kinetic was initially presented at the end of 2008, however, it was still pretty much widget-oriented (the closest you could get to QML's was to use QGraphicsWidget by yourself, like Plasma 1 did). Qt Declarative (later called Qt Quick), including QML, has been shown in May 2009, a year after the acquisition by Nokia (June 2008, announced in January).
- user5994461 9y agoI've been on Qt projects, it's all C++. Never seen any QML, don't know why people think Qt is about QML and javascript.