2009-08-14 10 views
5

quale dei seguenti stili preferisci?Progettazione GUI - Moduli multipli vs MDI simulato (schede) vs PageControl

  • Una domanda che per eseguire compiti apre nuove forme
  • Una domanda che mantiene le varie "forme" in diverse schede
  • Un'applicazione che si basa su un PageControl e vi mostra la scheda a destra a seconda di ciò vuoi fare.
  • Qualcos'altro

Inoltre hai qualche buoni collegamenti per la progettazione di GUI?

risposta

7

Dal punto di vista dei programmatori, la soluzione PageControl sfugge rapidamente. Forse un numero eccessivo di codice e sicuramente molti componenti in un unico modulo. (Originariamente questa domanda è stata etichettata Delphi, quindi vado da lì.)

Dal punto di vista degli utenti, il paradigma "apre una nuova finestra" spesso confonde. Noi persone tendiamo a pensare che siamo in grado di multitasking e gestire molte finestre e attività aperte, ma non lo siamo (ci occupiamo di passare a una perdita di tempo come i computer e aggiungere una perdita di precisione).

Ovviamente questo dipende molto dal tipo di applicazione. Ma tenderei ad un paradigma come Chrome e Firefox spettacolo nelle loro ultime incarnazioni:

  • mantenere le varie forme in diverse schede
  • consentire all'utente di staccare una scheda nella sua propria forma (dock e disancorare tramite drag% drop)
  • aggiungere un buon modo di navigazione

a implementare qualcosa di simile a uno SDI come schermata principale di un'applicazione troppo. Guarda qualcosa come "stile di prospettiva". Navigazione, elenco di oggetti, dettagli dell'oggetto in diversi riquadri, alcuni riquadri aggiuntivi come un cockpit. E quindi aprire una nuova finestra/modulo per determinati compiti (alcuni modali, alcuni non modali), ma di breve durata. Dopo che l'email è stata scritta, viene inviata e chiude la finestra. Ma ho, se sono in grado di farlo, la possibilità di lavorare su più e-mail in quel momento.

Controllare il problema. Se ha carattere dashboard, prendi "stile outlook" o così. Se gli utenti sono un pubblico diffuso, eterogeneo, non esperto di computer, usa SDI o moduli nelle schede. Se scrivi per programmatori, potresti optare per più moduli, solo perché tendiamo a pensare che possiamo gestirlo. E funziona per più schermi (si spera).

+0

+1, bella risposta. Sarai d'accordo sul fatto che non ci sia nulla di specifico su Delphi (né domande né risposte). – mghie

+0

@mghie: sono d'accordo. Ma non conosco la quantità di codice necessaria in altri linguaggi per utilizzare un paradigma di PageControl. Forse ci sono lingue in cui questo è stato ottimizzato ed è la strada da percorrere. –

+0

@ Ralph: utilizzando moduli o frame come pagine nel controllo pagina non ci sono problemi con il numero di componenti o la dimensione della singola unità. Mentre scrivi, è (o può essere) problematico dal programmatore POV, un dettaglio di implementazione, se vuoi. Ho capito che la domanda riguardava principalmente la parte di progettazione della GUI. – mghie

2

MDI è la scelta peggiore possibile, a mio parere. Non c'è niente che odio di più che dover ridimensionare un mucchio di finestre, o affiancarle o altro.

Anche le schede sono cattive, soprattutto se ne hai più di una (o se hai una riga ma hai ancora più schede di quelle che si adattano, e devi usare qualche barra di scorrimento funky o "altro" con loro).

Preferisco vedere il programmatore pensare al problema e mostrarmi quello che devo vedere in base a ciò che sto facendo come utente. Implementare le diverse interfacce utente nei programmi come controlli utente (anziché moduli discreti) e quindi mostrarli o nasconderli in base al contesto corrente è la strada da seguire.

0

Il modulo Tab è una buona idea se si utilizza una cornice per ogni contenuto della scheda.Questo ti impedisce di ottenere troppi codici in un'unica unità di forma. Prova a fare lo stesso di Google Chrome. Personalmente creo un menu con le opzioni che in realtà sono frame che vengono caricati solo quando l'utente lo richiede, quindi non ci saranno mai più schede visibili a meno che l'utente non ne abbia bisogno.