Lupoalberto12 Pubblicato: 4 Agosto 2008 Segnalazione Share Pubblicato: 4 Agosto 2008 Ciao a tutti! Volendo iniziare a scrivere qualcosa anche per il mio cell, ho letto entrambi i Topic per iniziare con il Python e uno dei due manuali per Python (il secondo)1 Per ora è come il C++, però ci sono delle differenze (o somiglianze) (confermatemi se sono vere): invece delle parentesi graffe, "funziona" con il tab! Anche il Python è case sensitive! Per i "parametri" d'entrata e di uscita dai cicli o dalle istruzioni di controllo (If) non servono le parentesi tonde! Non serve dichiarare il tipo delle variabili! Ora però trovo difficoltà con le differenze tra vari cellulari! Mi spiego: volevo creare un programma che dopo tot secondi blocchi la tastiera (quindi tasto sinistro + *) per N70, visto che non ne ho trovati di programmi che fanno solo quello! Ora che differenza c'è tra il mio 6600 e l'N70? Cioè quando vado a scrivere, cosa cambia tra l'uno e l'altro? All'inizio cerco di farlo funzionare "da terminale", poi con un minimo di grafica (solo per far inserire dopo quanti secondi si deve attivare e poi in Background)! Grazie! Ciao! ! ! Link to comment Condividi su altri siti More sharing options...
JumpJack_ Pubblicato: 5 Agosto 2008 Segnalazione Share Pubblicato: 5 Agosto 2008 Cioè quando vado a scrivere, cosa cambia tra l'uno e l'altro?All'inizio cerco di farlo funzionare "da terminale", poi con un minimo di grafica (solo per far inserire dopo quanti secondi si deve attivare e poi in Background)! se non usi funzioni specifiche introdotte da symbian in versioni successive del S.O., non ci sono differenze di funzionamento da un programma all'altro: è proprio questo il bello di python, la portabilità. Per dire, se devi mostrare un messaggio sullo schermo, o richiedere un input dall'utente, o fare altre cose semplici, il tuo programma girerà su qualunque s60! Se pero' invece inizi a importare moduli esterni, dovrai assicurarti che siano disponibili per i vari cellulari. Link to comment Condividi su altri siti More sharing options...
Lupoalberto12 Pubblicato: 5 Agosto 2008 Autore Segnalazione Share Pubblicato: 5 Agosto 2008 Intanto che aspetto una risposta, vi pongo un altro quesito: su Linux come implemento l'Sdk dei Nokia? E come faccio ad emulare il "cellulare" per provare il codice appena scritto? Il Python già l'ho "installato"! Uso Ubuntu Hardy (8.04)! Grazie! Ciao! ! ! Link to comment Condividi su altri siti More sharing options...
Lupoalberto12 Pubblicato: 5 Agosto 2008 Autore Segnalazione Share Pubblicato: 5 Agosto 2008 (modificato) @JumpJack_: grazie della risposta! Quindi ad esempio se non "gioco" con la fotocamera, browser ecc.ecc. non cambia nulla! Quindi se uso solo la tastiera (o meglio i codici della tastiera) non ci dovrebbero essere problemi tra 6600 e N70? Però mi chiedevo se potesse incidere la risoluzione dello schermo (oppure si "auto-adatta"?)! Grazie! Ciao! ! ! Edit: un'altro paio di domande: non ho ben capito come si usa "canvas", però penso che si debba usare insieme ad "appuifw" (giusto?)! Perchè si mette la u davanti al testo da far stampare a video (esempio: appuifw.note(u"Ciao",'info')? e32 sarebbe la libreria di "Sistema" (quella per Uiq cambia, giusto?)? Perchè per MULTI_QUERYBOX non si deve definire il tipo di dato che l'utente deve inserire? Come faccio un minimo di grafica (con "appuifw.app.body=xxx" cancello, ma se voglio definire qualcos'altro (esempio: come dico che il colore del testo deve essere rosso?)? Per il KeyCapture sulla guida Pys60 rimanda al Capitolo 5.2 del manuale 1.3.11: su quello più recente dove si trova invece? Cos'è questa definizione: "from appuifw import *" ? (Puntatore?)! Grazie! Ciao! ! ! Modificato 5 Agosto 2008 da Lupoalberto12 Link to comment Condividi su altri siti More sharing options...
memoryn70 Pubblicato: 5 Agosto 2008 Segnalazione Share Pubblicato: 5 Agosto 2008 @JumpJack_: grazie della risposta!Quindi ad esempio se non "gioco" con la fotocamera, browser ecc.ecc. non cambia nulla! Quindi se uso solo la tastiera (o meglio i codici della tastiera) non ci dovrebbero essere problemi tra 6600 e N70? Però mi chiedevo se potesse incidere la risoluzione dello schermo (oppure si "auto-adatta"?)! Grazie! Ciao! ! ! Edit: un'altro paio di domande: non ho ben capito come si usa "canvas", però penso che si debba usare insieme ad "appuifw" (giusto?)! Perchè si mette la u davanti al testo da far stampare a video (esempio: appuifw.note(u"Ciao",'info')? e32 sarebbe la libreria di "Sistema" (quella per Uiq cambia, giusto?)? Perchè per MULTI_QUERYBOX non si deve definire il tipo di dato che l'utente deve inserire? Come faccio un minimo di grafica (con "appuifw.app.body=xxx" cancello, ma se voglio definire qualcos'altro (esempio: come dico che il colore del testo deve essere rosso?)? Per il KeyCapture sulla guida Pys60 rimanda al Capitolo 5.2 del manuale 1.3.11: su quello più recente dove si trova invece? Cos'è questa definizione: "from appuifw import *" ? (Puntatore?)! Grazie! Ciao! ! ! 1 Si il canvas si usa con l'appuifw, ovviamente x scrivere fai ad esempio canvas.text() oppure canvas.blit() x disegnare su schermo un oggetto immagine. canvas è l'istanza appuifw.Canvas() ovviamente! 2.La u si mette x indicare unicode, codifica usata in symbian x l' UI (testi, etichette ecc...) 3.e32 non si può definire una libreria di sistema cmq è sempre utile nei programmi, quasi indispensabile. Non so nemmeno se python sia su UIQ cmq dovrebbe esserci pure li se fosse. 4 Probabilmente non è implementata una cosa del genere. Se richiedi numeri dovrai inserirlo come stringa e poi convertirlo a numero con int() o float() oppure eval() che te lo converte nel tipo giusto 5 Il colore del testo è un parametro che passi al metodo text, polygon ecc... e non dipende dal body 6 La libreria Keycapture non è mai stata aggiornata, quindi qualsiasi riferimento è sempre ok 7 from libreria import * si usa x importare direttamente i metodi rendendoli locali nello script (tipo e32.ao_sleep() se carichi il modulo cosi puoi fare cosi: ao_sleep() senza e32). Puoi importare solo una funzione anche from e32 import ao_sleep,reset_inactivity... Spero che ti abbia chiarito! Link to comment Condividi su altri siti More sharing options...
giuppe92 Pubblicato: 5 Agosto 2008 Segnalazione Share Pubblicato: 5 Agosto 2008 (modificato) invece delle parentesi graffe, "funziona" con il tab! Anche il Python è case sensitive! Per i "parametri" d'entrata e di uscita dai cicli o dalle istruzioni di controllo (If) non servono le parentesi tonde! Non serve dichiarare il tipo delle variabili! Siccome Memory come al solito è stato esaustivo nella sua risposta provo io a risponderti ale prime domande dove mi sembra tu non abbia ancora ricevuto risposta. Percui: 1. Certo, il tab è una cosa essenziale nel python. Puoi scegliere quando debba essere la grandezza di un tab, 1-2-3-4 spazi. Io solitamente ne uso 4 per trovarne subito la posizione, però se devi fare perecchie identazioni è meglio usare un numero di spazi inferiore. 2. Of course, anche python è case sensitive! 3. No, non servono, anche se magari a volte ti possono essere utili per fare chiarezza (un po' come la questione dei tab); 4. No, le variabili non si dichiarano, ma si distinguono quando gli si assegna un valore, per esempio stringa="" (per una stringa si usano le virgolette), intero=1234 (per l'intero non si usano, quindi se fai una cosa del genere: intero="1234" nonostante tu legga dei numeri rimane in memoria come stringa)... Modificato 5 Agosto 2008 da giuppe92 Link to comment Condividi su altri siti More sharing options...
Lupoalberto12 Pubblicato: 5 Agosto 2008 Autore Segnalazione Share Pubblicato: 5 Agosto 2008 (modificato) @memoryn70: 1 quindi non sono due cose separate! Canvas è "una sotto-libreria" di Appuifw, quindi? 2 L' avevo immaginato ! 3 Sisi è presente anche lì ! 4 Capito! 5 E dove posso trovare qualcosa che mi spieghi cosa usare per lo sfondo, per il testo, ecc.ecc.? (ad esempio: appuifw.txt(codice colore) per il colore del testo?) 6 Quindi devo trovare il manuale 1.3.11? 7 Quindi o import sysinfo print battery() o print sysinfo.battery() ? Se ad esempio voglio simulare la pressione del tasto "*", devo perndere il "codice" corrispondente al tasto "*" (come il codice Asci per i caratteri)? Ho scritto questo codice usando tutte le funzionalità di "Sysinfo" (lo so l'hanno già fatto in molti, però almeno ho inizato a capire come funziona ): import sysinfo import appuifw appuifw.app.body=None appuifw.app.screen='full' appuifw.app.title=u"Info Nokia" appuifw.note(u"Benvenuto in Info Nokia!",'info') nome=appuifw.query(u"Inserisci il tuo nome:", 'text') print "Ciao ", nome def info(): print "Livello Batteria:" print sysinfo.battery() print "Livello Segnale:" print sysinfo.signal() print "Codice Imei:" print sysinfo.imei() print "Ram disponibile:" print sysinfo.max_ramdrive_size() print "Ram Totale:" print sysinfo.total_ram() print "Rom Totale:" print sysinfo.total_rom() print "Tipo suoneria:" print sysinfo.ring_type() print "Versione So:" print sysinfo.os_version() print "Versione Sw:" print sysinfo.sw_version() def about(): appuifw.body=None appuifw.note(u"Scritto da Ugo Palumbo!",'info') def Exit(): appuifw.app.set_exit() def Menu(): appuifw.app.menu=[(u"Mostra Informazioni",info),(u"About", about),(u"Esci",Exit) Menu() Ora altre due domande: def è come se fosse una function in C++? E se si, come faccio a dichiararle e poi a definirle? Perchè mi dà questo errore:Linea 50 Menu() ^ SyntaxError: invalid syntax L'ho scritto prendendo ad esempio un altro programma! Grazie dell'aiuto! Ciao! ! ! Edit: @giuppe92: grazie anche a te! Ciao! ! ! Modificato 5 Agosto 2008 da Lupoalberto12 Link to comment Condividi su altri siti More sharing options...
Lupoalberto12 Pubblicato: 5 Agosto 2008 Autore Segnalazione Share Pubblicato: 5 Agosto 2008 Ho trovato questo manuale per le API (non quelle che fanno il miele ): http://www.mobilenin.com/pys60/resources/A..._for_Python.pdf Ne avete uno più recente? Però non ho ancora trovato come simulare la pressione dei tasti! Grazie! Ciao! ! ! Link to comment Condividi su altri siti More sharing options...
Oper Pubblicato: 5 Agosto 2008 Segnalazione Share Pubblicato: 5 Agosto 2008 Forse perche' manca una ] qui: appuifw.app.menu=[(u"Mostra Informazioni",info),(u"About", about),(u"Esci",Exit) alla fine? Link to comment Condividi su altri siti More sharing options...
Lupoalberto12 Pubblicato: 5 Agosto 2008 Autore Segnalazione Share Pubblicato: 5 Agosto 2008 si era quello! Ora però esce direttamente, senza aspettare che l'utente scelga cosa fare! Grazie! Ciao! ! ! Link to comment Condividi su altri siti More sharing options...
giuppe92 Pubblicato: 5 Agosto 2008 Segnalazione Share Pubblicato: 5 Agosto 2008 Devi metterci lo sleep finale, dopo l'esecuzione di Menu(). Link to comment Condividi su altri siti More sharing options...
Oper Pubblicato: 5 Agosto 2008 Segnalazione Share Pubblicato: 5 Agosto 2008 Devi metterci lo sleep finale, dopo l'esecuzione di Menu(). Anche se a qualcuno non piacerà, io lo uso sempre : lock = e32.Ao_lock() menu() lock.wait() Ricordati import e32 Link to comment Condividi su altri siti More sharing options...
Lupoalberto12 Pubblicato: 6 Agosto 2008 Autore Segnalazione Share Pubblicato: 6 Agosto 2008 E' come se fosse un "system ("pause")" su C++ ("per Windows")? Spiegatemi una cosa: con lock=e32.Ao_lock() e lock.wait(), è come se scrivessi e32.Ao_lock.wait() ? Perchè devo dichiarare lock prima di Menu()? Non posso metterlo subito prima di lock.wait()? Ci sono altri controlli di "attesa"? Grazie! Ciao! ! ! Link to comment Condividi su altri siti More sharing options...
memoryn70 Pubblicato: 6 Agosto 2008 Segnalazione Share Pubblicato: 6 Agosto 2008 (modificato) E' come se fosse un "system ("pause")" su C++ ("per Windows")?Spiegatemi una cosa: con lock=e32.Ao_lock() e lock.wait(), è come se scrivessi e32.Ao_lock.wait() ? Perchè devo dichiarare lock prima di Menu()? Non posso metterlo subito prima di lock.wait()? Ci sono altri controlli di "attesa"? Grazie! Ciao! ! ! Ti rispondo solo ad alcune xkè sn 1 pò di fretta! Si sarebbe cosi ma in questo caso poi devi avere cmq l'istanza della classe e32.ao_lock(), altrimenti poi non riesci + a sbloccarlo anche se fai e32.Ao_lock.signal() perché non è la stessa istanza poi che vai ad usare! (a capirlo cosi da principianti forse non è facile cmq).. Altri controlli di tempo e pause sono e32.ao_sleep() e la classe e32.Ao_timer() che si usa cosi: t=e32.Ao_timer() t.after(secondi (anche float), callback) dove callback è la funzione che andrai a richiamare, se ha bisogno di argomenti usa: lambda: funz(args) Modificato 6 Agosto 2008 da memoryn70 Link to comment Condividi su altri siti More sharing options...
JumpJack_ Pubblicato: 8 Agosto 2008 Segnalazione Share Pubblicato: 8 Agosto 2008 bello 'sto thread. Come faccio ad uscire dalla "modalità grafica" (appuifw) senza uscire dal programma, in modo da poter vedere i messaggi di errore? Link to comment Condividi su altri siti More sharing options...
memoryn70 Pubblicato: 9 Agosto 2008 Segnalazione Share Pubblicato: 9 Agosto 2008 Come faccio ad uscire dalla "modalità grafica" (appuifw) senza uscire dal programma, in modo da poter vedere i messaggi di errore? Eh dovresti provare a cancellare il canvas e impostare il body a None... Link to comment Condividi su altri siti More sharing options...
Recommended Posts
Please sign in to comment
You will be able to leave a comment after signing in
Accedi Ora