2011-02-03 10 views
5

La nostra applicazione desktop deve essere eseguita su Mac, Windows e Linux. Ecco perché abbiamo scelto Qt. Prima avevamo tre basi di codice separate per quelle 3 piattaforme.Qt: Dilemma di progettazione dell'interfaccia utente filosofica

Nella vecchia implementazione, abbiamo disegnato la nostra "finestra didascalia" con i pulsanti Chiudi, Riduci a icona, Ingrandisci. Sembra lo stesso in tutte e tre le piattaforme.

Questa volta, non ne sono così sicuro. Ho pensato di lasciare che Qt usasse i pulsanti di sottotitoli e didascalie per ogni piattaforma, i pulsanti rettangolari "X", "_" di Windows, i pulsanti rotondi sul lato sinistro del Mac e tutto ciò che va con Linux/Ubuntu ecc.

Questa è una decisione saggia? Una delle cose che mi spingono lì è che dovrei scrivere il codice di ridimensionamento per la classe di finestre che sto scrivendo, il codice di trascinamento, il pulsante di lavoro e tutto ciò che viene fornito con la scrittura di didascalie di Windows.

Ho notato che se uso questo, "Qt :: FramelessWindowHint" per rimuovere la didascalia, perdo automaticamente anche il mio rampino di ridimensionamento. C'è un modo per aggirare questo? Inoltre, come procederesti nell'implementare il proprio codice di trascinamento di Windows? (a patto che tu conoscessi l'area che avresti voluto usare come "didascalia trascinabile". Sembra che ho bisogno di prendere il pulsante in quella regione, entrare in una modalità di trascinamento, tracciare i movimenti del mouse e spostare le finestre in base ai delta. Come ho già fatto in altre piattaforme, ma volevo chiedere se Qt ha un meccanismo che mi permetta di farlo subito "

risposta

11

Ho pensato di lasciare che QT usasse qualsiasi cosa didascalia e didascalia predefinita pulsanti per ogni piattaforma

prega di farlo. Come utente Mac, poche cose sono più confuso di interfacce "universali" che si suppone a guardare lo stesso in tutto il mondo. l'interfaccia in stile Windows è confusin g. L'interfaccia di stile Mac è ciò a cui sono abituato e che voglio.

Se si deve scrivere (e mantenere e supportare) meno codice, è ancora meglio.

Basta andare con "nativo" il più possibile. Scrivi il meno codice possibile.

+0

Ascoltare sentire!Gli utenti di un determinato sistema di finestre hanno un aspetto (e posizionamento) a cui sono abituati. Qualsiasi deviazione da ciò li obbliga a cercare di capire come eseguire l'azione che desiderano, e quindi rende l'applicazione più difficile da usare. E come ha detto questa risposta: meno codifica e supporto sono sempre una buona cosa. –

+0

Grazie e altri commentatori. Ha senso per me e questo è quello che spingo ai miei capi. Spero che il nostro artista grafico che ha già progettato una "didascalia personalizzata" con pulsanti speciali non urlerà al cielo. – JasonGenX

0

Penso che l'applicazione dovrebbe seguire la progettazione dell'interfaccia utente del sistema operativo, in questo modo l'aspetto grafico dello strumento è simile ad altri sistemi operativi. Di solito quando l'applicazione viene creata con la stessa interfaccia utente in tutte e tre le piattaforme principali, non sembrerà la stessa di altre applicazioni in esecuzione nel sistema operativo.

Ad esempio, Apple è piuttosto severa con la propria UI Design e quindi gli utenti Mac si aspettano che lo strumento funzioni in modo particolare.

Questo vale anche per i tasti di scelta rapida, e questa è probabilmente la parte più difficile, perché OS X, Linux e Windows hanno i propri schemi nei tasti di scelta rapida e trovare la combinazione corretta non è sempre facile.

1

Il mio suggerimento è di lasciare che ogni app abbia un aspetto e una sensazione nativi per la piattaforma su cui gira. Il motivo è semplice: l'utente sceglie la piattaforma specifica per un motivo. A lui o lei piace come sembra e funziona.

C'è ovviamente un'eccezione a questo. Per le app a schermo intero come i giochi che non usano finestre, finestre di dialogo e molti controlli, cucinare da soli e far sembrare tutto uguale su tutte le piattaforme supportate è OK e persino desiderabile. Ma per le normali applicazioni con finestre, è meglio attenersi alla linea guida nativa dell'interfaccia utente.

Problemi correlati