this post was submitted on 03 Apr 2025
60 points (98.4% liked)

Linux

52789 readers
769 users here now

From Wikipedia, the free encyclopedia

Linux is a family of open source Unix-like operating systems based on the Linux kernel, an operating system kernel first released on September 17, 1991 by Linus Torvalds. Linux is typically packaged in a Linux distribution (or distro for short).

Distributions include the Linux kernel and supporting system software and libraries, many of which are provided by the GNU Project. Many Linux distributions use the word "Linux" in their name, but the Free Software Foundation uses the name GNU/Linux to emphasize the importance of GNU software, causing some controversy.

Rules

Related Communities

Community icon by Alpár-Etele Méder, licensed under CC BY 3.0

founded 5 years ago
MODERATORS
 

Hello all,

I'm trying to get into GUI programming, but am hesitating on using a Python library to make my first barebones program. My goal is to code basic buttons and understand how operating systems implement the way they draw windows for applications.

I have coded mostly in scientific libraries or high-level languages that are fairly simple (Python, Matlab, Julia)... Also am familiar with basic concepts and syntax from C.

Looking for recommendations to start. I am happy to learn a new PL. Interested in writing code for legacy hardware and mobile. Bonus if the codes are general enough to be written for most displays one could interact with.

you are viewing a single comment's thread
view the rest of the comments
[–] [email protected] 5 points 1 day ago

I've worked with GUIs on python for a couple of years, we used PyQt, which is a python wrapper for Qt which is a C++ library for GUIs. It's fairly straightforward and easy to get something up on the screen in no time.

However from parts of your comment it seems you want to implement your own graphics library, and that is a lot harder to do.

Also you mentioned legacy hardware, not sure how legacy it would be. Python should run on most things people would call legacy nowadays, but there's definitely an overhead that could be felt if you're trying to run this on an embebed system or a REALLY old (as in 90s/00s era) computer.

You also mentioned mobile, I don't think PyQt can be compiled to mobile easily, nor do I think you should even if you manage to (been there, done that, not a happy time). Desktop and Mobile GUIs are very different, realistically if you want something that works well on both mobile and desktop with the same codebase the easiest approach is web UI.