A language with an easy GUI included. Something where you draw the windows and buttons with a mouse, and then right click on them to attach text code to GUI events.
The reason why that does not exist, is the differences in existing native GUIs. Creating an abstraction layer that covers them all is pretty damn difficult. Even details like the visual box model (margin-border-padding-contents) differ.
Python does have Tcl/Tk (
tkinter and
tkinter.ttk) "built-in" (although usually requires a separate download, for example
python3-tk; tkinter.ttk is the themeable version). You might wish to try that and Don Rozenberg's
PAGE, a "Visual Basic-style Tkinter GUI generator".
It generates the Python code for the Tkinter UI.
I prefer to use Qt Designer (Qt5) or Glade (Gtk3), saving the XML .ui description as a file, and building that at run time, with automagic name-based event handler association. It means the UI editor generates absolutely no code at all. I do need to give each interactive user interface element an unique ID, to make the name-based event handler association to work. (The simplest scheme is
uniqueID_eventname, using only case-sensitive letters, digits, and underscore, possibly using a simple map from
uniqueID and
eventname to
function-name. Both also support CSS for styling the interface.) I avoid setting/using sizes in pixels, because they clash with different-DPI displays.
I struggle with anything GUI today, even after taking various classes and tutorials about GUI in python.
Most of them are crap, written by learners not understanding the underlying reality (especially across different operating systems), enthusiastically telling others to follow in their footsteps, not seeing the inevitable brick wall looming a couple steps further.
A good tutorial would start by describing the limitations and differences in the different toolkits, then describe what widgets are, then what difference does code-based versus XML description make. Then, one could go into layout and display widgets, events/signals, event handling, and sane processing of data related to events (you don't do heavy computation in an event handler, because that causes the UI to freeze; you need to use either an idle handler that only does a bit of work at a time, or better, a separate worker thread that uses a thread-safe queue to talk to the UI thread). Most of those is the same for Gtk and Qt.