Newsgroup: it.comp.macintosh
Titolo: programmino facile

Ciao volevo fare uno stupido script che faccia da countdown per il mio mac.
Meglio farlo in applescript oppure con cocoa e java?
Poi voglio che si avvii da solo a ogni avvio.
Ciao
-- 
Simone aka Hellboy
Reply to: 
simotessa(at)libero(dot)it
questo articolo e` stato inviato via web dal servizio gratuito 
http://www.newsland.it/news
 segnala gli abusi ad 
ab...@newsland.it

 Ciao volevo fare uno stupido script che faccia da countdown per il mio mac.
Per quanto riguarda il tempo di attesa, basta che inizi lo script con
delay x
dove x è il numero di secondi che devono passare prima che lo script
proceda avanti. Poi dopo che dovrebbe fare?
-- 
"I have a very simple life, I have my family and I have Apple and Pixar.
And I don't do much else." S. J.

 proceda avanti. Poi dopo che dovrebbe fare?
No vorrei un countdown dei giorni tipo 10 giorni alla data x.


 No vorrei un countdown dei giorni tipo 10 giorni alla data x.
In Python puoi fare una cosa del genere
#!/usr/bin/env python
# -*- coding: UTF-8 -*-
import time
import datetime
while True:
        f = datetime.datetime(2004, 12, 31)
        fine = f.strftime("%d/%m/%Y")
        i = datetime.datetime.now()
        diff = f - i
        g = diff.days
        o = diff.seconds / 3600
        m = (diff.seconds /60) % 60
        s = diff.seconds % 60
        print "Al", fine, "mancano", g, "giorni", o, "ore", m, "minuti",
s, "secondi"
        time.sleep(3600)
Ogni ora ti dice quanto manca al 31/12/2004. Non è proprio il massimo
però, perché devi tenere aperta apposta una finestra del terminale...


 però, perché devi tenere aperta apposta una finestra del terminale...
Se e` per quello ci si aggiunge la GUI...
In Tk sono 4 righe o giu` di li... pero` bisogna installare un paio di 
cosette (sono due installer da doppioclick, nulla di trascendente, se 
interessa, dico).
Oppure si puo` fare con PyObjC, ma credo sia piu` lunga :)
-- 
RiK0

 In Tk sono 4 righe o giu` di li...
Son tutt'orecchi... ;-)


 Son tutt'orecchi... ;-)
L'ho fatto in applescript
set giorno to day of (current date)
if giorno <= 9 then
         set conto to 9-giorno
else
         set conto to (31-giorno) + 9
end if
display dialog "" &conto& "giorni mancanti with icon 2 
Certo è specifico ma si può rendere generico
Ciao


 Son tutt'orecchi... ;-)
Per mostrare che funziona, ho settato il tempo dell'orologio a 2
secondi.
Modifica questo:
        self.label.after(2000, self.set_time)
e mettici il tempo che vuoi (e` in millisecondi).
Per installare Tkinter:
Brevemente e` necessario scaricare il pacchetto Tcl/Tk aqua da qui:
http://tcltkaqua.sourceforge.net/
e in seguito MacPython:
http://homepages.cwi.nl/~jack/macpython/
#!/usr/bin/env python
# -*- coding: UTF-8 -*-
import time
import datetime
import Tkinter as tk
class main_win(object):
    def __init__(self, f):
        self.f = f
        self.fine = f.strftime("%d/%m/%Y")
        self.root = tk.Tk()
        self.root.title('Countdown')
        self.label = tk.Label(self.root)
        self.set_time()
        self.label.pack()
    def set_time(self):
        i = datetime.datetime.now()
        diff = self.f - i
        g = diff.days
        o = diff.seconds / 3600
        m = (diff.seconds /60) % 60
        s = diff.seconds % 60
        self.label.config( text="Al %s mancano %d giorni %d ore %d
minuti %d secondi" % \
                (self.fine , g, o, m, s))
        self.label.after(2000, self.set_time)
if __name__ == '__main__':
    f = datetime.datetime(2004, 12, 31)
    mwin = main_win(f)
    tk.mainloop()
-- 
RiK0
Non credo negli schemi non vincenti.

 
http://homepages.cwi.nl/~jack/macpython/
Ho già installato MacPython per Panther, che sfrutta il Python di
sistema. Devo per forza installare il MacPython completo? Dicono che può
dare problemi...


 # -*- coding: UTF-8 -*-
Provato a farlo girare in MacPython:
AttributeError: 'module' object has no attribute 'Tk'


 dare problemi...
No... installa pure quello piccolo che hai gia` messo su :)
Magari reinstallalo dopo TCL/Tk. Non so se e` necessario... ma tanto 
male non fa :))
Comunque per il tuo script, puoi adattare il mio :))
In realta` io ho solo aggiunto poche righe al tuo precedente e ho un po' 
modificato la struttura :)
-- 
RiK0

 
Allora... asp
Non devi farlo girare 'dentro' IDLE (ovvero MacPython immagino).
Lancialo da terminale finche` ci lavori, e poi semmai fanne un Applet.
Io lo ho provato e funziona... sicuro di avere ben installato Tkinter?
-- 
RiK0

 import Tkinter as tk
Il problema è qua:
File
"/System/Library/Frameworks/Python.framework/Versions/2.3/lib/python2.3/
lib-tk/Tkinter.py", line 38, in ?
    import _tkinter # If this fails your Python may not be configured
for Tk
ImportError: No module named _tkinter
Quindi mi pare che Tkinter lo trovi, poi però succede qualcosa durante
l'importazione.


 l'importazione.
Dopo avere installato TCL/TK Aqua, hai fatto partire l'installer di 
MacPython (quello piccolo per Panther )?
-- 
RiK0

 MacPython (quello piccolo per Panther )?
Lo avevo già fatto in precedenza. Comunque ho scoperto che bisogna
installare a parte _tkinter.2.3-binary col PackageManager di MacPython.


 installare a parte _tkinter.2.3-binary
Continua a esserci grossa crisi comunque: il tuo programma gira, ma ogni
volta che clicco sulla finestra appare questo errore nel Terminale:
SetFrontProcess failed,-606
PythonIDE poi crasha il più delle volte che provo a far girare un
programma per Tkinter e quando non crasha esce lo stesso errore di cui
sopra...


 sopra...
E questo e` normale :) 
C'e` anche scritto nella documentazione (ma non chiedermi il link... :))


 wrote:

ricordati di usarlo lanciando con il comando pythonw e non python.
Questo vale sempre sotto os x quando un programma e' dotatao di GUI
-- 
Ciao
Fabio

 pythonw e non con python
Grazie!


 Questo vale sempre sotto os x quando un programma e' dotatao di GUI
Credo che sia esattamente il problema che si e` verificato poi sotto :))
-- 
RiK0

 Grazie!
Lo prendo come un 'funziona'?
Poi a te consiglio di guardarti PyObjC.
In pratica e` l'interfaccia a Cocoa in Python.
In questo modo per fare applicazioni MacOS X puoi scegliere ObjC, Java o 
Python.
-- 
RiK0