Linux Desktop GUI Programming Reality Check-In
December 1, 2021 10:25 AM   Subscribe

I'm exploring GUI programming for desktop utility applications in Linux, and wanted to check in as to how people are doing things out there. Example windowed application: Arbitrary grid of icon buttons in first tab, and editable paths to button executables and icon images on the other tab. Which langs, libraries, and toolkits are you using? I'm open. Thank you.
posted by circular to Technology (11 answers total) 3 users marked this as a favorite
Response by poster: Just to add in case it matters, the systems in use are Ubuntu 20.04 x64, Ubuntu 18.04 x64, and Puppy Linux Bionic Pup 32, though it looks like that hardware also supports 64 bit. Ideally applications could be shared across these platforms.
posted by circular at 10:29 AM on December 1, 2021

Best answer: Trying out PyQT on Ubuntu myself, liking it enough, the natural MVC structure is not clear to me yet but I can believe there is one.

I have liked the wx gui better in the past, but it was an install hassle when I was picking a library, so (shrug emoji).
posted by clew at 10:50 AM on December 1, 2021 [1 favorite]

Best answer: Seconding Qt. I've been a C++/Qt programmer for a long time but the Python bindings are mature enough now that it is easy and fun to use. I'd look into using QML (aka Qt Quick) to define the interface instead of trying to whip up your definitions in code.
posted by JoeZydeco at 11:11 AM on December 1, 2021 [1 favorite]

Best answer: The last time I did this (~10 years ago?) I used PyQT which was fine. I think the way the big guys do it (Slack and Mozilla at very least) is write JS and build on a browser engine like Electron.
posted by goingonit at 12:27 PM on December 1, 2021 [1 favorite]

Best answer: I've been using pyqt when I have tasks like this for the last ~7 years. I'm not in love with it enough to wax poetic or anything, but it works sufficiently well that I haven't even been tempted to look for another solution. For the example task you describe, I could throw together a utilitarian GUI very quickly.
posted by Metasyntactic at 1:56 PM on December 1, 2021

Best answer: I'm a major contributor on a minor project, a music player for square dance callers that's written in Qt & C++, and if the Qt licensing works for you I like Qt a lot. I've done some stuff with Gtk in the past, and I liked the earlier incarnations, but it seems like they went off in directions in Gtk3 that weren't compatible with my vision of how the world should work.

And, yeah, these days I'm primarily a Mac developer, and we're gradually throwing everything into WkWebViews and doing more and more of our UI in HTML and associated technologies, and if I were starting a project right now, unless it absolutely had to run on something embedded, I'd just start with Electron.
posted by straw at 2:12 PM on December 1, 2021

Best answer: It's been a long while now, but I found PyQt to be pretty easy. There wasn't a whole lot of documentation at the time, though, so translating the C++ Qt docs into Python was a mild challenge. Nonetheless, I had a working implementation in a day and had fully fleshed out the GUI stuff in a couple more.
posted by wierdo at 2:37 PM on December 1, 2021

Response by poster: Thanks all for those replies. I'm surprised by the popularity of Python and Qt in the replies, but I guess I shouldn't be. It seems like the Qt licensing should work for me. I will definitely check it out.

Here are some other options I'm testing and/or considering as I work through this: Lazarus/FreePascal (made several apps with it, seems OK overall), PureBasic (simple tests only, works reasonably well), FreeBasic, Gambas, Electron, Quasar, NW.js, MIT App Inventor.

(Back in the early 2000s I used Mediachance Multimedia Builder for some simple projects of this type, and I see that it's still for sale. Fascinating...)

Anyhow, I will also run through the Python / PyQt docs and see how it goes! Thanks again.
posted by circular at 6:20 PM on December 1, 2021

Best answer: You might want to stretch yourself and be weird and therefore try Tk (software) - Wikipedia. The old days Tcl/Tk was the way to just script up this simple thing really as writing a small script. Now it tries to be mostly native look-and-feel and there are bindings for several languages.
posted by zengargoyle at 6:33 PM on December 1, 2021

Best answer: No one has mentioned Glade. It seemed really easy to use when I had to make a GUI for an app, kind of like Project Builder back in the old days.
posted by jabah at 6:36 PM on December 1, 2021

It seems like the Qt licensing should work for me.

Just be careful, especially if you plan to sell it commercially. Memail me for tips if you are.
posted by JoeZydeco at 1:00 PM on December 2, 2021 [1 favorite]

« Older How to watch ALL Law and Order episodes   |   I can't see backwards! Newer »

You are not logged in, either login or create an account to post comments