frontpage.
newsnewestaskshowjobs

Made with ♥ by @iamnishanth

Open Source @Github

fp.

Open in hackernews

Developing a Beautiful and Performant Block Editor in Qt C++ and QML

https://rubymamistvalove.com/block-editor
38•michaelsbradley•2d ago

Comments

5d41402abc4b•2h ago
This could have been based on KDE's KTextEditor https://github.com/KDE/ktexteditor
coffeeaddict1•1h ago
Isn't that targeting Qt Widgets?
isodev•2h ago
This is brilliant work and I love the Qt ecosystem. Can’t help but imagine the things we could’ve had if Apple wasn’t pushing the horror of Swift down everyone’s throat by blocking alternatives in so many tiny ways.
pjmlp•1h ago
If you mean due to lack of C++ for doing GUIs, Google and Microsoft have also long left C++ to the dust, in what concerns GUI frameworks.

Even Microsoft, for all its C++ use, has never produced anything better than MFC to this day, and only Windows team cares about XAML C++, others rather use React Native or Webview2 alongside C++.

It is up to third parties to use frameworks like Qt.

mathverse•16m ago
Swift and SwiftUI on macOS are the most complete UI framework that is native, fast, performant and works very well.

Basically no other platform comes even close in terms of ease of use and performance. The best would be to extend that kind of framework on Windows (and/or Linux) and make it work same / similar.

crashabr•1h ago
Looks great, and it has some features and polish that I would love Logseq to have natively, but overall I prefer the customisation potential of logseq with tags, templates, block refs etc.
dleeftink•58m ago
Great write-up! It would be useful if various PKMs would settle on a similar format for recording (nested) tasks, dates and metadata, as it seems to have become the standard way to store kanban boards and similar 'enhanced' views of the underlying md tasklist. Currently there exist various strategies ranging from embedding JSON as comments to esoteric (non-markdown) formats, often trailing at the end of each task. This makes the source look cluttered and difficult to edit/navigate.

IMO, metadata (such as date ranges) could instead be stored as empty links leading each task (or maybe showing a symbol such as '@'), paving the way for a 'linked' data format while resulting in a same-width list for easy lookups and editing:

  - [x] [@](/2025/12/30..31.md (15:30:21)) task 1
  - [ ] [@](/2025/12/29..30.md (16:20:31)) task 2
  - [ ] [@](/2025/12/28..28.md (14:20:31)) same day task
    - [ ] undated nested task
For instance, the above tasks would link to the virtual '30..31.md' and '29..30.md' files to collect all backlinked tasks for the provided daterange (akin to Obisidan/Logseq/etc).

In an ideal world, the task marker could hold the metadata itself, but this would unfortunately result in non-standard behaviour:

  - [x](/2025/12/30..12/31 (15:30:21)) task 1
  - [ ](/2025/12/29..12/30 (16:20:31)) task 2
    - [ ] undated nested task
It would then be up to the editor to render this metadata accordingly.
noodletheworld•54m ago
I've worked with QtWidgets and I have mixed feelings about the extensive (1) documentation about integrating C++ with QML and QtQuick.

Here's a quick history lesson (as I understand it):

- QtWidgets the original C++ QT graphics library.

- Around 2008 or something, they introduced QML and QtQuick. This was basically declarative UI + javascript for logic.

- QtWidgets is considered 'done' and all new features and dev is basically happening in QML / QtQuick.

- ...as described in this post, the current recommended 'best practice' is to avoid writing a pile of javascript spaghetti and bridge between C++ for logic and QML for UI.

So, long story short: We've moved from a robust C++ framework, to a javascript backed framework to 'appeal to the masses', but it's kind of hard to build a whole application that way, and so 'best practice' is to go back and write your logic in C++.

Does that seem weird to anyone else?

> While powerful, Qt Widgets lack some essential modern features, in my opinion, such as declarative UI, bindings, behaviors, anchors, and more. These features enable the creation of beautiful, animated UIs simply and quickly, as seen in QML.

Hum. QML is certainly declarative.

I'd love to see a breakdown of specifically what features you can't do with widgets, and why having a js <-> c++ bridge is better than not having one.

Don't get me wrong; if you want to write a 100% javascript QML application, that's cool. Go for it... but when you're writing a C++ application and choosing, deliberately, to implement you UI in another language and communicate with that UI via a bridge...

...well, let's just say, if you had another option (eg. just use C++), wouldn't that make sense?

Couldn't you do the the same thing with react native components and logic in C++? (You could) Why is this any better than just writing a react native UI? Or a flutter UI?

You could do any kind of UI, even fully native, if you're implementing the application is c++ and then just doing cross language <-> to the ui.

Right?

[1] - https://doc.qt.io/qt-6/qtqml-cppintegration-overview.html

pjmlp•23m ago
> Couldn't you do the the same thing with react native components and logic in C++? (You could) Why is this any better than just writing a react native UI? Or a flutter UI?

The tooling, that is why.

Having QtCreator, Qt Design Studio, compiling QML to native code, debugging experience.

React Native has all the gotchas from JavaScript and poor tooling for developers that never left the CLI world.

Flutter depends on Dart, a programming language that was rescued from oblivion thanks to Flutter, and is pretty much useless everywhere else.

scrivanodev•35s ago
I also think Qt/QML is a very underrated technology. I have been developing a handwritten notes for Linux/Windows using Qt Quick for quite some time [0]. The experience has been a mixed bag though. I've encountered tons of bugs (many of them still unfixed) that I had to find very ugly workarounds for. Also, while a declarative style UI language can have a lot of benefits, it does have a lot of limitations. For example, in my application I required a (infinite) canvas to rendering the ink strokes and something like would be a perfect job for QGraphicsView, which has no equivalent in Qt Quick. So I had to roll out my own component (which uses Skia under the hood), but that was quite painful. Since Qt 6, the Qt Quick scenegraph is rendered with a custom RHI backend (abstracting over Vulkan, Metal, OpenGL and DirectX) which I had a lot of trouble integrating with third party engines.

[0] https://scrivanolabs.github.io

What an unprocessed photo looks like

https://maurycyz.com/misc/raw_photo/
1481•zdw•11h ago•244 comments

Staying ahead of censors in 2025

https://forum.torproject.org/t/staying-ahead-of-censors-in-2025-what-weve-learned-from-fighting-c...
130•ggeorgovassilis•4h ago•71 comments

Show HN: Z80-μLM, a 'Conversational AI' That Fits in 40KB

https://github.com/HarryR/z80ai
150•quesomaster9000•4h ago•37 comments

You can make up HTML tags

https://maurycyz.com/misc/make-up-tags/
243•todsacerdoti•7h ago•99 comments

Developing a Beautiful and Performant Block Editor in Qt C++ and QML

https://rubymamistvalove.com/block-editor
38•michaelsbradley•2d ago•10 comments

Binaries

https://fzakaria.com/2025/12/28/huge-binaries
42•todsacerdoti•4h ago•15 comments

Show HN: My not-for-profit search engine with no ads, no AI, & all DDG bangs

https://nilch.org
80•UnmappedStack•5h ago•44 comments

My First Meshtastic Network

https://rickcarlino.com/notes/electronics/my-first-meshtastic-network.html
46•rickcarlino•5h ago•21 comments

Unity's Mono problem: Why your C# code runs slower than it should

https://marekfiser.com/blog/mono-vs-dot-net-in-unity/
197•iliketrains•12h ago•95 comments

Koine

https://github.com/pattern-zones-co/koine
4•handfuloflight•3d ago•0 comments

As AI gobbles up chips, prices for devices may rise

https://www.npr.org/2025/12/28/nx-s1-5656190/ai-chips-memory-prices-ram
165•geox•11h ago•219 comments

Software engineers should be a little bit cynical

https://www.seangoedecke.com/a-little-bit-cynical/
198•zdw•13h ago•134 comments

MongoBleed Explained Simply

https://bigdata.2minutestreaming.com/p/mongobleed-explained-simply
194•todsacerdoti•13h ago•74 comments

Growing up in “404 Not Found”: China's nuclear city in the Gobi Desert

https://substack.com/inbox/post/182743659
768•Vincent_Yan404•1d ago•340 comments

Researchers discover molecular difference in autistic brains

https://medicine.yale.edu/news-article/molecular-difference-in-autistic-brains/
136•amichail•12h ago•75 comments

Line scan camera image processing

https://daniel.lawrence.lu/blog/2025-09-21-line-scan-camera-image-processing/
40•vasco•3d ago•2 comments

PySDR: A Guide to SDR and DSP Using Python

https://pysdr.org/content/intro.html
180•kklisura•14h ago•8 comments

Formally Verifying Peephole Optimisations in Lean

https://l-m.dev/cs/formally-verifying-peephole-optimisations-in-lean/
6•l-mdev•6d ago•0 comments

Spherical Cow

https://lib.rs/crates/spherical-cow
94•Natfan•11h ago•12 comments

Fast GPU Interconnect over Radio

https://spectrum.ieee.org/rf-over-fiber
25•montroser•6h ago•1 comments

Mouse: Computer Programming Language

http://mouse.davidgsimpson.com/
12•gappy•2d ago•3 comments

Formulaic Delimiters in the Iliad and the Odyssey

https://glthr.com/formulaic-delimiters-in-the-iliad-and-the-odyssey
17•glth•2d ago•6 comments

Slaughtering Competition Problems with Quantifier Elimination (2021)

https://grossack.site/2021/12/22/qe-competition.html
53•todsacerdoti•11h ago•0 comments

A bitwise reproducible deep learning framework

https://github.com/microsoft/RepDL
24•noosphr•1w ago•0 comments

Finding Jingle Town: Debugging an N64 Game Without Symbols

https://blog.chrislewis.au/finding-jingle-town-debugging-an-n64-game-without-symbols/
30•knackers•5d ago•1 comments

Fast CVVDP implementation in C

https://github.com/halidecx/fcvvdp
35•todsacerdoti•11h ago•7 comments

Why I Disappeared – My week with minimal internet in a remote island chain

https://www.kenklippenstein.com/p/why-i-disappeared
83•eh_why_not•12h ago•97 comments

How to complain (2024)

https://outerproduct.net/trivial/2024-03-25_complain.html
59•ysangkok•11h ago•10 comments

C++ says “We have try... finally at home”

https://devblogs.microsoft.com/oldnewthing/20251222-00/?p=111890
121•ibobev•1d ago•132 comments

Panoramas of Star Trek Sets

https://mijofr.github.io/st-panorama/
81•jfil•5h ago•12 comments