Domanda

Vorrei costruire una GUI per un'applicazione OCaml che sto scrivendo. La mia prima idea era quella di utilizzare GTK + . Vorrei che la mia applicazione per funzionare su Mac, Linux, Windows con un aspetto naturale. So che, mentre GTK + usa X11 su Mac di default (che sembra terribile), non v'è gtk-osx-application che utilizza quarzo e sembra naturale, e che ho appena installato utilizzando MacPorts.

Ho tre domande:

(1) E 'effettivamente possibile utilizzare gtk-osx-application +quartz+no_x11 con OCaml? (Installazione mia GODI che in precedenza (con GTK2 x11 basati sul posto) lablgtk2 installato senza problemi, ora (con gtk-osx-application +quartz+no_x11 e il precedente GTK2 x11-based rimosso) si lamenta /opt/local/lib/libgtk-x11-2.0.0.dylib di non trovare, che è X11 legato. Ma, per quanto che ne so, non c'è modo di scegliere quarzo su x11 durante l'installazione lablgtk2 attraverso GODI.)

(2) Se ho sviluppato il mio codice sul mio Mac utilizzando il gtk-osx-applicazione, posso usare il codice come è per la compilazione in altre piattaforme che utilizzano diversi GTK o può questi problemi portano?

(3) Se non creare problemi, sai di qualsiasi altro ambiente per lo sviluppo di interfacce grafiche in OCaml che possono potenzialmente essere buono sia per quanto riguarda look and feel e ancora essere facilmente cross-usato? (Sono consapevole del labltk ma preferirei qualcosa con più funzionalità, ad esempio, la capacità di usare i notebook, a.k.a pannelli a schede, e di essere in grado di utilizzare Glade per la progettazione rapida GUI).

Grazie per qualsiasi aiuto!

Saluti, Surikator

È stato utile?

Soluzione

Supponendo che si può ottenere lablgtk al lavoro, è probabilmente la soluzione migliore al momento.

Per farlo funzionare: Hai provato a ricostruire lablgtk dopo la rimozione X11 GTK e l'installazione di quarzo GTK? Un lablgtk costruito contro X11 GTK, naturalmente, non funziona su un quarzo GTK, in quanto sarà collegato alla libreria sbagliato, ma ricostruire potrebbe essere successo. Potrebbe anche essere che lablgtk non rileva correttamente che le chiamate di integrazione X11 non funzionano e quindi non riescono a costruire, ma mi aspetto che per essere non troppo difficile da risolvere come lablgtk fa il supporto di Windows.

Se si sviluppa il codice per GTK su Mac, dovrebbe funzionare su altre piattaforme più che bene. Avrai voglia di provarlo, naturalmente, ma dovrebbe funzionare. Fate attenzione ad utilizzare le strutture GTK per fare le cose come finestra lavoro ordine dei pulsanti in modo corretto.

Penso che ci era un tempo una serie di attacchi a OCaml wxWidgets, ma non sembrano essere ampiamente utilizzato e WX è doloroso per il lavoro con la mia esperienza. C'è stato anche un certo lavoro da fare binding Qt, che sarebbe fantastico, ma non credo che ci sono ancora progetti con un buon progresso su questo fronte.

Se l'interfaccia utente è un pezzo piccolo-ish del progetto, si poteva guardare disaccoppiamento dal backend e scrivere l'interfaccia utente in C ++ con Qt, o scrivere interfacce utente piattaforma nativa, e avere l'interfaccia utente chiamata fuori per il codice OCaml in un runtime incorporato per ottenere il vero lavoro svolto. Ma questo è probabilmente più lavoro e non si può dare molto beneficio, a seconda dell'applicazione in uso.

Quindi:. GTK è la scelta migliore nel panorama attuale

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top