4 ms·
One of the things that makes me seriously consider QT is Telegram. It is written in QT and in my opinion is one of the best examples of a cross-platform messagi
by ducktective 6y ago
One of the things that makes me seriously consider QT is Telegram. It is written in QT and in my opinion is one of the best examples of a cross-platform messaging app that Just Works(TM). Especially when one considers the horrible alternatives (looking at you, WhatsApp).
- Linux and Windows clients work smoothly OOTB. No UI lag/jitter. No RAM/CPU hogging.
- Drag and drop works. Floating video playback works. Background audio playback works. Minimize to tray, basic Markdown formatting, preview links, mp4 playback as gif, they all work flawlessly.
I don't even remember if I could throw something at it in a way that it would hang. I don't know how they did it, comprehensive unit-tests or good architecture design, but it sure is a breath of fresh air in this day and age which Electron monsters have set the bar too low that normal users don't remember the latency/resposive-ness of the 90s and 2000s software.
Any experienced QT devs can point us where to start learning QT? Good books/tutorials/blogs? I have some JavaFX experience...
- LeSaucy 6y agoQt documentation and examples are the best place to start. Qt has some of the best documentation of any SDK I've seen (open or closed source). In a Qt install there are TONS of examples that you can just open in QtCreator and tinker with, all sorted by Qt module.
- dx87 6y agoI'm not a professional dev, but Qt is what I use for any personel project that needs a GUI. I don't think I had to use any resources outside of the official tutorials and documentation on the Qt site, it's well documented. My only complaint with the documentation is that for a lot of their example projects, it doesn't explain it step by step, it just shows you a bunch of code and it's up to you to look up what the different functions do. I was originally going to try to make web apps for my projects, but even with no prior C++ experience, working with Qt was easier to pick up than learning javascript and all the associated tooling required for web applications.
- BlueTemplar 6y agoYeah, or comparing IDE's : - Spyder (Qt, great) - Atom (Electron, mediocre) - Eclipse (Java, bad)
- jhasse 6y ago- VS Code (Electron, the best)
- solarkraft 6y agoTdesktop also supports Wayland, HiDPI and touch scrolling on Linux, btw, something lots of apps still struggle with. However there are also many Qt apps that are terrible in this regard, which I find a bit sad because it suggests to me that Qt absolutely has the feature set to build great software, but doesn't really encourage it.
- bartvk 6y agoReally? Even the macOS client is Qt? I was fully convinced that it was an AppKit app, it looks so good and is so responsive. That's extremely well done, IMHO.
- leiserfg 6y agoFor mac they have two desktop apps, one native and one in Qt.
- FraKtus 6y agoDo you have an idea why they are doing that? Why would you maintain 2 targets doing the same thing for an OS?
- jack_pp 6y agoMaybe because the Qt one doesn't need any special Mac specific code. It's just another build target of the windows/Linux app
- Groxx 6y agoThey've maintained Telegram and Telegram X for Android for a couple years now too, and for almost a year on iOS until X replaced it. This is far from a new thing for them: https://telegram.org/blog/telegram-x https://telegram.org/blog/telegram-x
- black_puppydog 6y agoSo much this. Their desktop UI is the (and I mean the only) reason I favor telegram over any other chat client I've ever seen. That includes all electron based UIs out there (signal, element, ...) but also older ones. The only thing TDesktop struggles with is mixed DPI scaling. And only because they implemented UI scaling before Qt did, and so don't rely on its mechanisms, which is now hard to refactor.
- nyanpasu64 6y agoCan you explain more about the history of how Telegram implemented DPI scaling before Qt? Looking at the source today, Telegram deliberately disables runtime DPI scaling after the application starts up. And maybe that's a good thing, considering how changing DPI between 100% and 150% leaves running Qt apps with misshapen text (sometimes tiny, sometimes huge and overflowing the menus and buttons).
- black_puppydog 6y agoI can't explain more about it than I got from stumbling over this: https://github.com/telegramdesktop/tdesktop/issues/1121 https://github.com/telegramdesktop/tdesktop/issues/1121 And I only read enough of this to gauge whether there is a workaround. :P
- simonh 6y agoMy experience with Qt is with the Python bindings via PyQt and PySide, but I was able to easily work from the C++ documentation which is outstanding. I developed a desktop app and just worked from one of the code examples as a starting point and built the app up from there. The GUI designer seems pretty capable and I did try it out but I ended up coding everything directly. That's not a mark against QtDesigner, that's happened with every visual GUI design tool I've ever used.
- malkia 6y agoMaya, Houdini, and many other content creation tools are using Qt too. It's part of the https://VFXPlatform.com/ https://VFXPlatform.com/ too. But Qt is riddled with lots of tweaks, hacks, bugs - it's a beast, but sometimes a wild one, as you don't know what's going on deep down...
- physicsguy 6y agoIf you have commercial Qt license the support is pretty good. The source code is open source too, so you can go and look at what's going on if you need.
- robscallsign 6y agoThere is a series on youtube by VoidRealms that walks you through using the basics of C++ Qt/QWidgets that I found helpful when I was learning Qt. https://www.youtube.com/watch?v=6KtOzh0StTc&list=PL2D1942A4688E9D63&index=1&t=23s https://www.youtube.com/watch?v=6KtOzh0StTc&list=PL2D1942A46... I was trying to learn Qt, and it just wasn't clicking, but watching these videos and suddenly Qt just made sense. This was nearly 10 years ago, and note that some of the syntax has changed, particularly Signals/Slots.