È stata pubblicata la versione Dear PyGui 1.0.0 (DPG), un toolkit multipiattaforma per lo sviluppo di interfacce utente in Python. La caratteristica più importante del progetto è l'uso del multithreading e l'assegnazione delle operazioni alla GPU per accelerare il rendering. L'obiettivo principale di questa versione 1.0.0 è la stabilizzazione dell'API. Le modifiche che interrompono la compatibilità saranno ora proposte in un modulo separato 'experimental'.
Per garantire alte prestazioni, gran parte del codice di DearPyGui è scritta in C++ utilizzando la libreria Dear ImGui, sviluppata dagli stessi autori, ma progettata per la creazione di applicazioni grafiche in C++ e che offre un modello di lavoro sostanzialmente diverso. I sorgenti di Dear PyGui sono distribuiti con licenza MIT. Sono dichiarati supportati i sistemi operativi Linux, Windows 10 e macOS.
Il toolkit è adatto sia per la creazione rapida di interfacce semplici, sia per lo sviluppo di GUI complesse e specializzate per giochi, applicazioni scientifiche e ingegneristiche, in cui è richiesta un'alta reattività e interattività. Agli sviluppatori di applicazioni viene offerta un'API semplice e un insieme di controlli tradizionali pronti all'uso, come pulsanti, cursori, interruttori, menu, moduli di testo, visualizzazione di immagini e vari metodi di layout degli elementi della finestra. Tra le funzionalità avanzate si segnala il supporto alla creazione di diagrammi, grafici e tabelle.

Sono inoltre disponibili un insieme di visualizzatori delle risorse, un editor di legami nodali, un sistema di ispezione dei temi e elementi per il disegno arbitrario, adatti per la creazione di giochi 2D. Per semplificare lo sviluppo, sono incluse diverse utilità, tra cui un debugger, un editor di codice, un visualizzatore della documentazione e un visualizzatore dei log.
Dear PyGui implementa una modalità di operazione API tipica delle librerie GUI (Retained mode), ma è realizzato sopra la libreria Dear ImGui, che opera in modalità IMGUI (Immediate mode GUI). La modalità Retained implica che la libreria si occupa di generare la scena, mentre in modalità Immediate il modello di visualizzazione viene gestito dal client e la libreria grafica viene utilizzata solo per l'output finale, ovvero l'applicazione emette ogni volta comandi di rendering per tutti gli elementi dell'interfaccia per generare il frame pronto successivo.
In DearPyGui non vengono utilizzati i widget nativi forniti dal sistema, ma si esegue il disegno di widget personalizzati richiamando le API grafiche OpenGL, OpenGL ES, Metal e DirectX 11, a seconda del sistema operativo corrente. Sono disponibili oltre 70 widget pronti all'uso.



Fonte: opennet.ru
