Non c'è una risposta singola perché dipende in realtà dalla lingua, dalle biblioteche e dall'approccio che stai prendendo.
Al livello più elementare, il sistema operativo e / o il sistema desktop forniscono le funzioni necessarie per creare la GUI. Ad esempio, su Windows, esiste una funzione CreateWindow()
che è possibile utilizzare per creare una finestra (e pulsanti e altri controlli).
Poi ci sono le librerie multipiattaforma, come Qt o wxWidgets. Essi astraggono gli elementi della GUI in modo che la loro creazione sia la stessa su tutti i sistemi operativi. O li disegneranno direttamente o utilizzano una libreria di widget sottostante.
Un altro approccio è usare un progetto come Electron, che è un eseguibile nativo che "avvolge" un browser web. L'interfaccia dell'applicazione è scritta in HTML e amp; JavaScript.