2010-04-07 6 views
9

Sto morendo dalla voglia di sapere come posso creare una GUI per ffmpeg e jhead in OSX. Ho cercato una soluzione per un po 'e ho pensato che tu, gli utenti di StackOverflow, potessi aiutarmi. Forse conosci qualche documento che non ho trovato o, meglio, un tutorial per creare una GUI.Come posso creare un frontend GUI per uno strumento da riga di comando in OSX?

Amo questi due strumenti, ma mi piace la semplicità delle operazioni di drag/drop.

Nota: Non ho bisogno di una GUI per loro, voglio fare uno.

+0

possibile duplicato di http://stackoverflow.com/questions/2346171/writing-gui-frontend-for-commandline-application-in-mac-os-x – extraneon

risposta

7

c'è un tutorial per il confezionamento di strumenti da riga di comando che utilizzano NSTask, sul sito Cocoa Dev Central:

E 'di pochi anni ormai, ma dovrebbe iniziare.

+0

Questo è praticamente quello che stavo cercando! Inizierò = D Grazie! –

-1

Sul disco di Leopard Leopard/Neve potete trovare XCode, ma si può anche scaricare dal Developer Community Apple. XCode viene fornito con Interface Builder, che ti consente di creare GUI e puoi eseguire il rig sui tuoi comandi usando il framework Cocoa.

0

Questo non può essere la risposta migliore, ma nel libro "Xcode scatenato" è un capitolo come incorporare uno strumento a riga di comando all'interno di un'applicazione Cocoa. Forse dovresti dare un'occhiata. Bel libro comunque.

+0

Ho voglia di leggere quel libro per un po ' , ora, ma non ho mai avuto ... –

-1

Sei troppo tardi, c'è già un'interfaccia grafica per ffmpeg chiamato ffmpegX, ma in ogni caso, si creerebbe un modello che sia avvolge o utilizza la libreria o eseguibile .... se utilizza l'eseguibile è possibile utilizzare popen per richiamare l'eseguibile, scrivere sul suo STDIN e leggere dal suo STDOUT. La vista e il controller sarebbero fondamentalmente gli stessi di come lo si progetterebbe per qualsiasi altra applicazione della GUI. Poiché si tratta di un post di Cocoa, è possibile utilizzare Objective-C e Cocoa per creare la GUI, ma in realtà può essere implementato in qualsiasi lingua.

+0

Lo so, ma ffmpegX non è esattamente il tipo di software che mi piace (trascina, rilascia, converti, fatto), troppe impostazioni distribuite su un'interfaccia simile a Windows piena di controlli. Vorrei creare qualcosa come EasyWMV: http://www.easywma.com/wmv/ –

2

Se si chiede "Come si crea un'applicazione GUI in Mac OS X che si interfaccia a uno strumento da riga di comando" la risposta è NSTask. Sebbene, se lo strumento della riga di comando fornisce un'API di programmazione, è preferibile utilizzare lo strumento della riga di comando stesso.

Se ti stai chiedendo: "Come faccio a creare un'applicazione GUI in Mac OS X", la risposta è quella di leggere un libro su di esso e guardare i documenti del tutorial di Apple. La programmazione del cacao su Mac OS X di Aaron Hillegass è stato il mio punto di partenza.

2

Intendi qualcosa come Miro video converter?

+0

Fondamentalmente sì! Non ho avuto la sua esistenza ma se in qualche modo imparassi come creare il mio frontend, farò anche uno per * jhead * e altri incredibili software a riga di comando. –

0

È possibile utilizzare un linguaggio di scripting come Tcl, Python o Ruby con un toolkit come Tk che utilizza i widget nativi sul mac.

1

Prima creare una finestra di dialogo modale NIB con la GUI necessaria.
Quando viene chiamato in C, creare un NSReleasePool, e poi la salsa di magia.

[NSApplication sharedApplication]  
ProcessSerialNumber psn; 
GetCurrentProcess(&psn); 
TransformProcessType(&psn,kProcessTransformToForegroundApplication); 
SetFrontProcess(&psn); 

Più tardi, dopo aver caricato la NIB dal Fascio, problema

[NSApp runModalForWindow:[controller window]]; 
[[controller window] close]; 

Senza il TransfromProcessType(), l'applicazione Terminal otterrà sequenze di tasti, non il dialogo modale.