6 ms·
LeanQt – GUI is here, Widgets are near
- dotancohen 4y agoAn interesting idea. I would love to see Python bindings, right now seems to be Cpp only.
- opencl 4y agoIt's just normal Qt with a bunch of features removed. Modifying one of the existing Python Qt bindings to build against this should be relatively straightforward.
- lioeters 4y agoLooks useful! > LeanQt is a stripped-down Qt version which includes the essential features and is easy to build from source and to integrate with an application.
- amelius 4y agoI wonder how long it takes to compile on an RPi. I tried it once with the full Qt build and gave up :) Of course, I should have cross-compiled but I guess I didn't want it enough.
- ergvgdvgrd 4y agoCompiling qt on the pi is an overnight sort of thing. I think it took 12+ hours when I did it on a pi4. Thankfully, once it's compiled, you don't have to compile again until you next version bump.
- varajelle 4y agoWhy compiling on the pi, instead of cross compiling?
- ergvgdvgrd 4y agoCompiling Qt with the right switches is hard enough, before you throw in cross compiling on top. Since you only need to compile a new Qt release once every few months, why optimize the process? Just kick it off and go to sleep. I don't modify core Qt libraries ever. If I was iterating on Qt itself, I would definitely figure out cross compiling. Anyways if you come up with such a working cross-compile recipe, you should post it some place.
- sanxiyn 4y agoQt cross compiles fine with Scratchbox2. I think people working on cross compilation are wasting their time. They are trying to fix it "properly", separating build time dependency and run time dependency, because host system can't run cross compiled target binary. The obvious solution (what Scratchbox2 does) is for host system to run cross compiled target binary, instead of trying to "fix" the build system.
- ReactiveJelly 4y agoTo be fair, I don't think I've ever gotten cross-compiling to work, beyond a "Hello World". Especially since many ARM platforms are stuck on old libcs that are difficult to support.
- CamperBob2 4y agoTakes about 10 minutes to build on a 3 GHz i7-2600K. So maybe an hour or two on an RPi? The impressive thing is that the build instructions are like 3 lines long, and actually result in a working build. No drama, no specific compiler versions required, no CMake or autotools or other external crap, no dependency hell... just lots of cl.exe invocations scrolling by, followed by a command prompt.
- Rochus 4y agoI just tried on a Raspberry Pi Model 3B, BCM2835 ARMv7, 4 cores, Raspbian Linux 4.9.59-v7+ armv7l; "time ./lua build.lua ../LeanQt -P HAVE_GUI" reported 65 minutes (rounded).
- recuter 4y agoWith the new gui, image and thirdparty modules, the uncompressed size of the source tree has grown to ~43 MB (10 MB zip compressed), with close to 3000 C/C++ files and more than 700 kSLOC. LeanQt is designed to build only the modules you actually need. ..The resulting source tree has less than 800 files and requires only ~11 MB (2.6 MB zip compressed), and perfectly works as a substitute of the full source tree in this guide; see the attached LeanQt_core_only.zip file. Good. Not Alan Key 10kSLOC for the entire universe good. But certainly a step in the right direction. I have searched high and low for something better, here is one rabbit hole: https://www.areweguiyet.com https://www.areweguiyet.com Many people are trying, but frustratingly, even in 2022 you could do a lot worse than QT. If you really want to get depressed read about the internals of Servo (rip) and how they tried to render text. No wonder something that calls itself lean is still somehow hundreds of thousands of lines.
- jcelerier 4y ago> Not Alan Key 10kSLOC for the entire universe good. if this was enough that's what we'd use though, no ? While I like this project, I don't use half of the features it mentions in the supported features, and I use half of the features with no support planned so it's not an option for me ; i'd wager anyone not making todo apps has different set of requirements which leads to something like Qt which comes with everything. Simple example: no scripting support means pretty much that it's unuseable for any technical app e.g. in CAD/CAM or similar. No SQL means that it's unuseable for any kind of enterprisey CRUD client app.
- Rochus 4y ago> no scripting support ... No SQL It's mostly about concentration of responsibilities, or as they say on Unix: "do one thing and do it well". Scripting support can easily be delegated to other projects (LeanQt inherits meta and introspection facilities of Qt which make dynamic bindings easy to accomplish, see e.g. this one for Lua: https://github.com/rochus-keller/NAF/tree/master/Script2); https://github.com/rochus-keller/NAF/tree/master/Script2); the same applies to database integration and other topics.
- ducktective 4y agoNo charts?
- ergvgdvgrd 4y agoCharts module is GPL, if you care about commercial usage. The core is LGPL which isn't too bad to comply with for commercial products.
- Rochus 4y agoAs soon as the Graphics View Framework is migrated (currently, not even widgets are migrated), you should be able to compile the Qt Charts source code with LeanQt, because the latter maintains compatibility with most of the Qt API. Whether this makes sense or not is a different question, since there is still original Qt which can install these things all at once if needed.
- bachmeier 4y agoNice to see. I remember a while back trying to compile an open source app built with Qt. I gave up on it when I got to the part where I had to sacrifice a young male goat. Referring in particular to this: "Unfortunately, there has been a certain proliferation over the years where Qt has been bloated with all sorts of features with questionable value. The standard binary installation of Qt swallows several gigabytes and requires a login to a commercial company server, which discourages many people."
- deleted 4y ago[deleted]
- joezydeco 4y agoYou should see the emails you get as a commercial customer. They're currently busy adding on advertising hooks and remote analytics.
- Waterluvian 4y agoAre there tools to evaluate (imperfectly) the percent of a binary that actually gets used? Like, run an application, run the watcher tool, then “walk the application” as best as possible and get an output: “35% of the binary was never read.” ? What’s on my mind is evaluating the actual result of tools and methods for not including unnecessary things. I struggle with this in web land. Tree shaking and such does a wonderful job but I honestly don’t know how much of my bundle is still superfluous.
- bkallus 4y agoI don't know, but one could implement this without too much difficulty as a wrapper around afl-showmap.
- xcambar 4y agoNo, because you can't prove every piece of functionality has been executed.
- Waterluvian 4y agoTrue. What’s what I meant by (imperfectly). But perfect can’t be the enemy of good. There’s tremendous value in the data. You wouldn’t use it to just omit those bits. But it tells you a lot.
- ergvgdvgrd 4y agoRun time "code coverage" would give you that.
- speps 4y agoRead this classic article: https://fgiesen.wordpress.com/2012/04/08/metaprogramming-for-madmen/ https://fgiesen.wordpress.com/2012/04/08/metaprogramming-for... The section called "A plan so insane, it might just work" describes what you mention.
- tscherno 4y agoIn an interview I can't find anymore a developer from Farbrausch said that they used such a method to optimize the .kkrieger demo and ended up having a bug in the main menu because while recording the coverage the user never scrolled to a certain main menu item. So once you scrolled there you couldn't scroll up anymore.
- sizzzzlerz 4y agoNovarnitgoldarnitfritzeb, I said that 'Widgets are n[clang]'
- TheDesolate0 4y ago
- regular 4y ago
- alaenix 4y agoWould love the same thing with QML and QtQuick modules!