In simplest terms, a GUI building block, similar to LEGOs.

A widget usually has a window on which it draws itself.

Some widgets are invisible - they draw on the window underneath them..

And some important classes, such as GtkAdjustment are not widgets at all.