À propos du projet

dbwidgets est une bibliothèque Python qui apporte les contrôles de données style Delphi aux applications PySide6. Elle se compose de trois couches principales : un extracteur de schéma (`db`, `DBSQLite`, `DBPostgres`, `DBMySQL`/`DBMariaDB`) qui lit les tables, colonnes, clés primaires et étrangères ; une couche dataset (`DataSet`, `QueryDataSet`, `DataSource`, `Field`) qui offre navigation curseur, édition, insertion, suppression et master-detail ; et une couche widget (`DBText`, `DBEdit`, `DBGrid`, `DBNavigator`, `DBLookupComboBox`, `DBImage`, `DBCtrlGrid`, etc.) qui se lie directement à une source de données sans câblage supplémentaire. La bibliothèque dérive automatiquement les relations maître-détail depuis les clés étrangères, supporte les champs calculés et lookup, et propose de riches fonctionnalités d'édition telles que des lignes vierges pour les insertions, des datasets en lecture seule, et la gestion des blobs avec opérations de chargement/sauvegarde. L'intégration avec Qt Designer est fournie via un plugin capable de charger un fichier projet `dbwidgets.json`, permettant l'affichage de données en direct pendant la conception. Le plugin fournit également une boîte de dialogue de connexion et un gestionnaire de sources. Le bind runtime s'effectue via les utilitaires `bind` et `ui_loader`, ou en promouvant les widgets de base. Une API originale (`dbwidgets.widgets`) est conservée pour la compatibilité ascendante. Le projet inclut une documentation complète, des scripts d'exemple couvrant les datasets basiques, grilles, master-detail, lookups, requêtes et formulaires Designer, ainsi qu'une suite de tests exécutée headless sur une base SQLite en mémoire. Des vidéos de démonstration illustrent le flux de travail complet, de l'extraction du schéma à un formulaire construit dans Designer avec des grilles éditables et des navigateurs.