Vorrei che alla selezione di un file in un FIleChooser si possa vedere una anteprima di un file vettoriale (dxf in particolare). COme suggerite di procedere?
on 2010-03-03 12:52
on 2010-03-03 13:41
premesso che non ho mai affrontato il tuo problema specifico, posso provare ad indirizzarti su un approccio di massima: - per il caricamento del file: potresti usare ajax (cerca "ajax upload" per trovare maggiori info) e fare un upload asincrono. in questo modo avrai il file disponibile sul server, e potrà essere usato terminato il caricamento. - per il file dxf, non ho idea se esista un modo di visualizzarlo sui vari browser; potrebbe richiedere l'installazione di un plugin sui vari client, ammesso che esista. eventualmente, ma non so se esiste qualche strumento/libreria, potresti convertire "automaticamente" il file dxf caricato via ajax in qualche formato immagine (per esempio jpg o png), e visualizzare quello. quando salverai la form, per visualizzarlo anche successivamente (per esempio in edit), vorrà dire che quando salverai la form di primo inserimento, dovrai registrare sia il dxf che l'immagine. speri di averti aiutato, ciao, A.
on 2010-03-03 18:08
Grazie Andrea. Ho dimenticato a precisare che l'applicazione è locale, per cui non ho server. Al posto dell' "Upload Asincrono" posso utilizzare i thread? Per il dxf: quindi l'idea è quella di "convertire" il file in una immagine, salvare da qualche parte detta img e mostrarla in anteprima? Se pò fà ... !! Vediamo come posso risolvere. P.S: credi che posso fare tutto con Ruby?
on 2010-03-03 19:27
On 03/03/2010 18:08, Alessandro Barracco wrote: > Ho dimenticato a precisare che l'applicazione è locale, per cui non ho > server. > ops! ho *illogicamente* dato per scontato che stessimo parlando di un'applicazione web :P in tal caso vale il discorso AJAX ed il fatto che giri in locale non è un problema, perchè sarebbe comunque coinvolto un webserver, anche minimale, come mongrel o webrick. > Al posto dell' "Upload Asincrono" posso utilizzare i thread? > non saprei, quale tecnologia stai applicando? gira via web o stai usando qualche libreria grafica? > Per il dxf: quindi l'idea è quella di "convertire" il file in una > immagine, salvare da qualche parte detta img e mostrarla in anteprima? > Se pò fà ... !! > beh, concettualmente ne sono abbastanza sicuro, a prescindere dagli strumenti in gioco ;-) > P.S: credi che posso fare tutto con Ruby? > a occhio direi di si, ma è una domanda vaga; come sempre dipende dallo scopo che vuoi raggiungere, *come* vuoi farla in termini di utilizzo finale (web app o applicazione desktop?), ed anche gli eventuali *requisiti* da soddisfare (hardware, configurazione software, *fissazioni* del cliente, etc...). tanto per divagare e fare un esempio: PHP è nato per lo sviluppo web, ma può essere usato per scrivere programmi desktop (tramite GTK), ma non credo che sia la scelta più appropriata per questi casi, esistono tecnologie e linguaggi che si adattano meglio, ad esempio ruby! :-) concludendo, partendo dal fatto che tu abbia un'idea complessivamente chiara, scegli ciò che ritieni più indicato :-) ciao, A.
on 2010-03-03 19:44
Ciao,
non so esattamente che toolkit stai usando. Se il dxf è convertibile in
un Gtk::Pixbuf lo puoi mostrare in un controllo Gtk::Image in questo
modo:
file =
File.new(File.join(Dir.tmpdir,"tempimg#{self.object_id.to_s}"),'w')
file << value
file.close
self.pixbuf =
Gdk::Pixbuf.new(File.join(Dir.tmpdir,"tempimg#{self.object_id.to_s}"))
(tratto da
http://github.com/bolthar/freightrain/blob/master/lib/extensions/gtk/widgets/gtk_image.rb
)
dove value è un array di byte contenente l' immagine. Per avere il tutto
asincrono inserisci il tutto in un Thread.new (pericoloso, specie con Qt
dove sarebbe bene usare i suoi thread, peccato che il wrapper ruby (per
questioni più che legittime) non li implementi).
Che toolkit usi? Puoi fornire più dettaglio riguardo la tua
applicazione?
--
Andrea Dallera
http://github.com/bolthar/freightrain
http://usingimho.wordpress.com
Please log in before posting. Registration is free and takes only a minute.
Existing account
(Switch to SSL-encrypted connection)
NEW: Do you have a Google/GoogleMail or Yahoo account? No registration required!
Log in with Google account | Log in with Yahoo account
Log in with Google account | Log in with Yahoo account
No account? Register here.