KDDockWidgets, un framework di implementazione avanzato per QDockWidget

KDQDockWidget

Il gruppo KDAB è una società di consulenza software per applicazioni Qt, C ++ e OpenGL per diverse piattaforme (desktop, embedded e mobile), oltre a quello fornisce tutoraggio per sviluppare applicazioni Qt da zero e nel trasferire tutti i frame più diffusi a Qt.

Nel corso degli anni, KDAB ha contribuito e finanziato lo sviluppo di QDockWidget. Ma poiché le modifiche e le correzioni di bug hanno richiesto molti giorni per l'implementazione, utilizzando QdockWidget, Si è rivelata non essere una buona opzione, dando così vita a KDDockWidgets.

KDDockWidgets lo è un framework di docking avanzato per QDockWidgets, con cui ne espande l'utilizzo aggiungendo funzioni che QDockWidgets non supportano.

QdockWidget combina in modo nativo il codice della GUI con la logica con lo stato, come rende molto difficile andare avanti con nuove funzionalità, il che causa una grande complessità nella sua implementazione all'interno delle diverse piattaforme. Essendo un componente base di una serie di interfacce grafiche utente, con esso puoi spostare interi elementi della finestra (barre degli strumenti, gruppi di widget, ecc.) Dove vuoi.

Tuttavia, KDAB ha affermato che la manutenzione del codice QDockWidgets non è molto semplice, mentre commenta che:

KDDockWidgets è nato dalla mia esigenza di preservare la mia sanità mentale dopo aver lavorato su due progetti che richiedevano un'ampia personalizzazione. Uno in cui abbiamo provato a lavorare direttamente a monte, ma il tasso di regressione è risultato eccessivo.

E un altro in cui ho preso la strada dell'utilizzo di API private, eventi di mouse falsi e filtri di eventi, che all'inizio sembrava una buona idea, ma alla fine è stato un mondo di dolore. Inoltre, i nostri clienti stavano diventando più creativi con le loro richieste, quindi era chiaro che avevamo bisogno di un framework di docking migliore.

Il problema principale è il suo design, abbastanza monolitico ma configurabile (possiamo scegliere le funzioni a disposizione dell'utente, anche se poche persone lo fanno, per le animazioni), con un codice spaghetti (mescolando felicemente logica e stato del componente). Pertanto, qualsiasi modifica può creare un gran numero di regressioni.

Ecco perché KDAB ha deciso di creare KDDockWidgets, con cui cerca di semplificare notevolmente il design di QDockWidgets, facilitando il suo adattamento a situazioni particolari.

KDDockWidgets fornisce le seguenti funzioni:

  • Essere in grado di ancorare i widget in una finestra mobile e ancorare quel gruppo alla finestra principale
  • Aggancia a qualsiasi finestra, non solo alla finestra principale
  • Ancoraggio al centro della finestra principale
  • Supporto per schede staccabili nel widget centrale all'interno della finestra principale
  • Essere in grado di staccare le schede da una barra delle schede in un'area di aggancio
  • Possibilità di combinare più schede combinando vari componenti.
  • Esporre i widget della guida interni in modo che l'utente possa personalizzarli o fornirne di propri.
  • I gruppi di componenti possono passare liberamente da una finestra esterna (che contiene solo questo gruppo di componenti) alla finestra principale (una funzionalità parzialmente implementata in Qt 5.10).
  • Personalizza i widget delle schede
  • Personalizza le barre del titolo
  • Personalizza gli infissi delle finestre
  • Oltre ad evidenziare che la principale novità è l'aggiunta di precisi indicatori per rimuovere elementi dalla GUI, oltre al fatto che scompare la nozione di widget centrale, poiché come tale non è più un elemento specifico.

La nuova organizzazione separa chiaramente la logica dall'interfaccia grafica, in modo che il runtime sottostante sia può essere facilmente riutilizzato per le interfacce Qt Quick (che alla fine è previsto). Inoltre semplifica la personalizzazione dell'interfaccia, l'utente può fornire i propri widget per qualsiasi parte dell'interfaccia.

Inoltre, KDDockWidgets è pensato per essere un framework, quindi puoi facilmente sovrascrivere le interfacce per fornire aspetto e comportamento personalizzati. KDDockWidgets è un framework open source, che è sotto le licenze GPLv2 e GPLv3.

Sono disponibili il codice KDDockWidgets e una sua demo nel seguente link


Lascia un tuo commento

L'indirizzo email non verrà pubblicato. I campi obbligatori sono contrassegnati con *

*

*

  1. Responsabile dei dati: Miguel Ángel Gatón
  2. Scopo dei dati: controllo SPAM, gestione commenti.
  3. Legittimazione: il tuo consenso
  4. Comunicazione dei dati: I dati non saranno oggetto di comunicazione a terzi se non per obbligo di legge.
  5. Archiviazione dati: database ospitato da Occentus Networks (UE)
  6. Diritti: in qualsiasi momento puoi limitare, recuperare ed eliminare le tue informazioni.