
Any recommendation from your personal experience? What GUI to use for Python?
- would like to be something "python-esque", easy to use for non-programmers, just like Python is easier to use for amateurs than, say, C++ would be.
- has to have a drag&drop graphic editor to add controls and design the GUI, designing the layout by writing code is not productive for me
- preferably open source and definitely free, it's for hobby and non-commercial projects
- for my level of skills, the old VB5 was just right, with drag and drop buttons and auto generated code, then all you have to do was to populate the empty template with code for the desired actions, would prefer an equivalent for that VB5 style, if there is any
- multiplatform preferably, Linux is a must
Googled already, and tried so far a couple of them:
1. Qt and its "Qt Designer" - (that was some time ago, IIRC the wrapper module was called PyQt), thought I remember it as very cumbersome, hard to learn and also Qt is not entirely free, certainly not FOSS
2. PySimpleGUI - that was the simplest to use so far, but there's no GUI designer for PySimpleGUI, only some unbaked attempts to import XML ui produced by Qt Designer, which import tool seems abandoned and doesn't work any more
3. DearPyGui - it's very "Windows-ish" (has a registry for its GUI no matter the OS), thought it's open source and with MIT license. The main drawback (for me) is that it's not really for preparing a GUI, but more for making/developing tools for 2D/3D games. DearPyGui is based on ImGui, a C++ lib/engine for game devs, which ImGui is sponsored by big names like Blizzard or Ubisoft. The Python wrapper is very impressive and working, yet it is too recent, the video tutorials from 1-2 years ago are almost not applicable to current version. And still doesn't have a drag and drop designer.
They are all great Python GUI programs, yet none are just right for me. The GUI part feels to me like a dragging or a chore task, maybe it's just me, or maybe I have wrong expectation, IDK.
Been looking for something easy, to use for small/single person projects. For example to slap a GUI on a small board I make, or to control an existing devboards, or an instruments around the lab, things like that. For example adding a GUI for a data logger from a COM port, or a GUI for an SCPI tool to automate repeated measurements, or other small Python programs like that. I'm using mostly Linux/KDE (Kubuntu).
What did you guys are using for that, or seen and liked, when it comes to making a GUI, or what do you think I should try?

By using GtkBuilder, Glade XML files can be used in numerous programming languages including C, C++, C#, Vala, Java, Perl, Python,and others.

Looks very eye candy, will give Glade a try, too, thanks.
Used C in the past, but now I prefer Python. Python is more productive, and has modules for anything, from math to controlling an RTL-SDR.
For amateur programmers like me, this is how writing in Python feels:

apt install python3 from a root terminal, or use sudo.pip install matplotlib
pip install pyrtlsdrfrom pylab import *
from rtlsdr import *
sdr = RtlSdr()
# configure device
sdr.sample_rate = 2.4e6
sdr.center_freq = 95e6
sdr.gain = 4
samples = sdr.read_samples(256*1024)
sdr.close()
# use matplotlib to estimate and plot the PSD
psd(samples, NFFT=1024, Fs=sdr.sample_rate/1e6, Fc=sdr.center_freq/1e6)
xlabel('Frequency (MHz)')
ylabel('Relative power (dB)')
show()
python RTL-SDR.py
I have no idea what Python IDE full dev suite means.
AFAIK Python is only the interpreter for the Python language.
print("B a z i n g a !!!")Hit Ctrl+F5 to Run it, or F5 to Debug run it.
pip install psutilimport psutil
import tkinter as tk
def update_label_2(): # a function to autoupdate the proc %
cpu_percent = psutil.cpu_percent()
label_2.config(text=str(cpu_percent))
GUI.after(100, update_label_2) # reschedule to run again after 100ms
GUI = tk.Tk() # create the top window of a GUI
label_1 = tk.Label(GUI, text=':o) CPU % :o)') # create a label inside top window
label_1.pack() # render the label_1 label
label_2 = tk.Label(GUI, text='100') # a second label
label_2.pack()
btn = tk.Button(GUI, text='E X I T', command=GUI.quit) # an exit button
btn.pack()
GUI.after(0, update_label_2) # schedule to call update_label_2 function at first run
tk.mainloop() # start the window loopHit Ctrl+F5 to Run it. A window with live processor usage will open.
I use both Gtk+ 3.0 (in C) and Qt 5 (in Python 3) quite a lot.
wxPython is alive and well and runs under python 3.x nowadays. go to www.wxpython.org for details.

Given the fact that visually I prefer the Qt/KDE look over Gtk/Gnome, is there any programming advantage to make one choose Gtk3 over something else?

Thanks for the link, there's a big collection there of how each GUI looks like under different OSs https://wiki.lazarus.freepascal.org/Screenshots
Used Turbo Pascal for a while, it's a nice language but I don't remember it as productive as Python. And there is another (unfair) advantage Python has, and that's the abundance of its modules. Because it is so popular, there is an already written module for almost anything you can imagine or need to do from Python.
(..)
Built some large things in wxpython. Can recommend. As for IDE VSCode is where it’s at these days. When I say where it’s at, I mean that there is significant community attention to actually make it a nice place to be.
Really though when I build GUI applications these days I tend to build them in Go as an http server and write the UI in HTML/JS. That has the advantage of producing a single cross compiled binary with no dependencies per platform, strong typing throughout, very low footprint. Most importantly it’s actually possible to write a decent test suite against a browser application compared to other solutions.
Built some large things in wxpython. Can recommend. As for IDE VSCode is where it’s at these days. When I say where it’s at, I mean that there is significant community attention to actually make it a nice place to be.
Really though when I build GUI applications these days I tend to build them in Go as an http server and write the UI in HTML/JS. That has the advantage of producing a single cross compiled binary with no dependencies per platform, strong typing throughout, very low footprint. Most importantly it’s actually possible to write a decent test suite against a browser application compared to other solutions.
Wow. Mind blown.
Do you know of a good tutorial where one could follow a hullo world example (and perhaps beyond) without too much install library hell?