<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML><HEAD>
<META http-equiv=Content-Type content="text/html; charset=iso-8859-1">
<META content="MSHTML 6.00.2900.6212" name=GENERATOR>
<STYLE></STYLE>
</HEAD>
<BODY bgColor=#ffffff>
<DIV><FONT face=Arial size=2>Vorrei proporre del codice relativo al mio 
problema, ringrazio anticipatamente chiunque mi darà consigli e indicazioni 
per migliorarlo.</FONT></DIV>
<DIV><FONT face=Arial size=2></FONT> </DIV>
<DIV><FONT face=Arial size=2>Il menu ha quattro diverse funzioni, quale è la più 
corretta ? si puo' fare di meglio ?</FONT></DIV>
<DIV><FONT face=Arial size=2></FONT> </DIV>
<DIV><FONT face=Arial size=2>La mia idea è quella di aprire finestre 
(indipendenti) che avranno funzioni diverse, caricamento dati, aggiornamenti, 
visualizzazioni, salvataggi, ricerche ecc...</FONT></DIV>
<DIV> </DIV>
<DIV><FONT face=Arial size=2>Ciao</FONT></DIV>
<DIV><FONT face=Arial size=2>Marco</FONT></DIV>
<DIV> </DIV>
<DIV><FONT face=Arial 
size=2>#-------------------------------------------------------------------------------------------------------------<BR># 
Name: 
prova_test_gui16.py<BR>#------------------------------------------------------------------------------------------------------------<BR>import 
Tkinter<BR>from Tkinter import *<BR>import sys</FONT></DIV>
<DIV> </DIV>
<DIV><FONT face=Arial size=2>#print 'Number of arguments:', len(sys.argv), 
'arguments.'<BR>#print 'Argument List:', str(sys.argv)<BR>Messaggio = 
str(sys.argv)</FONT></DIV>
<DIV> </DIV><FONT face=Arial size=2>
<DIV><BR>class Applicazione:<BR>    def 
__init__(self,finestra):<BR>        
finestra.title("Finestra 250x200")<BR>        
larghezza = 
finestra.winfo_screenwidth()<BR>        
altezza = 
finestra.winfo_screenheight()<BR>        
larghezza= larghezza/2<BR>        altezza= 
altezza/2<BR>        
finestra.geometry("%dx%d+%d+%d" % (larghezza, altezza, 250, 200))</DIV>
<DIV> </DIV>
<DIV><BR>finestra = Tk()<BR>applicazione = Applicazione(finestra)<BR>exitButton 
= Tkinter.Button(finestra, text = 'Exit', command = 
finestra.destroy)<BR>exitButton.pack(side = 'bottom')</DIV>
<DIV> </DIV>
<DIV>status = Label(finestra, text=Messaggio, bd=1, relief=SUNKEN, 
anchor=W)<BR>status.pack(side=BOTTOM, fill=X)</DIV>
<DIV> </DIV>
<DIV>finestra.mainloop()</DIV>
<DIV> </DIV>
<DIV> </DIV>
<DIV> </DIV>
<DIV><BR>#------------------------------------------------------------------------<BR># 
Name: 
prova_finestra_gui.py<BR>#------------------------------------------------------------------------</DIV>
<DIV> </DIV>
<DIV>import sys<BR>from PyQt4 import QtGui, QtCore </DIV>
<DIV> </DIV>
<DIV>#print 'Number of arguments:', len(sys.argv), 'arguments.'<BR>#print 
'Argument List:', str(sys.argv)<BR>Messaggio = str(sys.argv)</DIV>
<DIV> </DIV>
<DIV>class MainWindow(QtGui.QMainWindow):<BR>      def 
__init__(self):<BR>            
QtGui.QMainWindow.__init__(self)</DIV>
<DIV> </DIV>
<DIV>            
self.resize(350, 250) # ridimensiona la 
finestra<BR>            
self.setWindowTitle('MainWindow')<BR>            
self.statusBar().showMessage(Messaggio) </DIV>
<DIV>               
<BR>app = QtGui.QApplication(sys.argv)<BR>main = 
MainWindow()<BR>main.show()<BR>sys.exit(app.exec_())</FONT></DIV><FONT 
face=Arial size=2>
<DIV></FONT>  </DIV>
<DIV><FONT face=Arial size=2></FONT> </DIV>
<DIV><FONT face=Arial size=2></FONT> </DIV>
<DIV><FONT face=Arial 
size=2>#------------------------------------------------------------------------<BR># 
Name: 
prova_menuform.py<BR>#------------------------------------------------------------------------</FONT></DIV>
<DIV> </DIV>
<DIV><FONT face=Arial size=2>from Tkinter import 
*             
<BR>from tkMessageBox import showerror<BR>from tkFileDialog import 
askopenfilename</FONT></DIV>
<DIV> </DIV>
<DIV><FONT face=Arial size=2>import os <BR>import subprocess</FONT></DIV>
<DIV> </DIV>
<DIV><FONT face=Arial size=2>def notdone():  <BR>    
showerror('Funzione da fare', 'Funzione inesistente') </FONT></DIV>
<DIV> </DIV>
<DIV><FONT face=Arial size=2>def apri1():<BR>    arg1 = 
'pippo'<BR>    arg2 = 'pluto'<BR>    
cmd="prova_finestra_gui.py " + arg1 + " " + arg2<BR>    
os.system(cmd)</FONT></DIV>
<DIV> </DIV>
<DIV><FONT face=Arial size=2>def apri2():<BR>    import 
prova_test_gui16</FONT></DIV>
<DIV> </DIV><FONT face=Arial size=2>
<DIV><BR>def apri3():<BR>    filename 
=askopenfilename(filetypes=[("allfiles","*"),("pythonfiles","*.py")])<BR>    
print filename</DIV>
<DIV> </DIV>
<DIV>def apri4():<BR>    arg1 = 'Minni'<BR>    
arg2 = 'Paperino'<BR>    cmd = 
"prova_test_gui16.py"<BR>    subprocess.call([sys.executable, 
cmd, arg1, arg2])</DIV>
<DIV> </DIV>
<DIV>#    execfile(cmd)</DIV>
<DIV> </DIV>
<DIV><BR>def makemenu(parent):<BR>    menubar = 
Frame(parent)                        
<BR>    menubar.pack(side=TOP, fill=X)<BR>    
<BR>    fbutton = Menubutton(menubar, text='File', 
underline=0)<BR>    fbutton.pack(side=LEFT)<BR>    
file = Menu(fbutton)<BR>    file.add_command(label='Apri1 system 
...',  command=apri1, underline=0)<BR>    
file.add_command(label='Apri2 import ...',  command=apri2, 
underline=0)<BR>    file.add_command(label='Apri3 filename 
.',  command=apri3, underline=0)<BR>    
file.add_command(label='Apri4 execfile .',  command=apri4, 
underline=0)<BR>    
file.add_command(label='Fine',              
command=parent.quit, underline=0)<BR>    
fbutton.config(menu=file)</DIV>
<DIV> </DIV>
<DIV>    ebutton = Menubutton(menubar, text='Edit', 
underline=0)<BR>    ebutton.pack(side=LEFT)<BR>    
edit = Menu(ebutton, tearoff=0)<BR>    
edit.add_command(label='Non usato1',   command=notdone,  
underline=0)<BR>    edit.add_command(label='Non 
usato2',   command=notdone,  underline=0)<BR>    
edit.add_separator()<BR>    ebutton.config(menu=edit)</DIV>
<DIV> </DIV>
<DIV>    submenu = Menu(edit, tearoff=0)<BR>    
submenu.add_command(label='Non usato10', command=parent.quit, 
underline=0)<BR>    submenu.add_command(label='Non usato11', 
command=notdone,     underline=0)<BR>    
edit.add_cascade(label='Non usato11',    
menu=submenu,        
underline=0)<BR>    return menubar</DIV>
<DIV> </DIV>
<DIV>if __name__ == '__main__':<BR>    root = 
Tk()                   
<BR>    root.title('Gestione di un applicativo in Python27 - 
Luglio 2012')        <BR>    
makemenu(root)                 
<BR>    msg = Label(root, text='Procedura Python di prova') 
<BR>    msg.pack(expand=YES, fill=BOTH)<BR>    
msg.config(relief=SUNKEN, width=70, height=20, bg='gray')<BR>    
<BR>    w, h = root.winfo_screenwidth(), 
root.winfo_screenheight()  <BR>#    
root.overrideredirect(1)  <BR>    root.geometry("%dx%d+0+0" 
% (w, h))      <BR>    
<BR>    root.mainloop()</FONT></DIV>
<DIV><FONT face=Arial size=2></FONT> </DIV>
<DIV><FONT face=Arial size=2></FONT> </DIV>
<DIV><FONT face=Arial size=2></FONT> </DIV>
<DIV><FONT face=Arial size=2></FONT> </DIV>
<DIV><FONT face=Arial size=2></FONT> </DIV>
<DIV><FONT face=Arial size=2></FONT> </DIV>
<BLOCKQUOTE 
style="PADDING-RIGHT: 0px; PADDING-LEFT: 5px; MARGIN-LEFT: 5px; BORDER-LEFT: #000000 2px solid; MARGIN-RIGHT: 0px">
  <DIV><FONT face=Arial size=2></FONT><FONT face=Arial 
  size=2></FONT><BR></DIV>Altri probabilmente ti daranno informazioni più 
  dettagliate o dei link di esempio introduttivi, comunque ti suggerirei di 
  iniziare a valutare moduli per la creazione di interfacce grafiche come PyQt, 
  che si ricollega a Qt, libreria molto ben fatta e ben documentata. Esistono 
  altre librerie come per esempio wxWidgets.<BR><BR>Un buon testo introduttivo 
  per la programmazione PyQt è 'Rapid GUI Programming with Python and Qt' di 
  Summerfield, che contiene anche un riepilogo inziale di Python. Vedi: <A 
  href="http://www.qtrac.eu/pyqtbook.html" 
  target=_blank>http://www.qtrac.eu/pyqtbook.html</A><BR><BR>Collegando gli 
  "oggetti" PyQt (finestre, combo boxes, widgets, etc.) a funzioni Python che 
  puoi distribuire in uno o più scripts, tra loro collegati tramite 'import' 
  iniziali, puoi costruire una singola applicazione che effettua le operazioni 
  da te descritte.<BR><BR>Ovviamente non è immediato apprendere come strutturare 
  il tutto, ma è senz'altro fattibilissimo. <BR>Non conoscendo ASP, non so se, 
  magari tramite Visual Studio, ti vengono forniti dei 'templates' precostituiti 
  di interfacce che poi modifichi per quanto necessario, facilitandoti il 
  lavoro.<BR><BR>ciao <BR>mauro<BR><BR><BR><BR><BR>
  <DIV class=gmail_quote>2012/7/29 Marco <SPAN dir=ltr><<A 
  href="mailto:mlemmi@alice.it" target=_blank>mlemmi@alice.it</A>></SPAN><BR>
  <BLOCKQUOTE class=gmail_quote 
  style="PADDING-LEFT: 1ex; MARGIN: 0px 0px 0px 0.8ex; BORDER-LEFT: #ccc 1px solid"><U></U>
    <DIV bgcolor="#ffffff">
    <DIV><BR></DIV>
    <DIV><FONT face=Arial></FONT> </DIV>
    <DIV><FONT face=Arial>
    <DIV><FONT face=Arial>Sono un "vecchio" programmatore, sono nato con il 
    Cobol, ora mi diverto con ASP, ho provato Ruby,Visual Basic,Java, in 
    modo molto superficiale, però Python ha qualcosa che mi ha 
    incuriosito</FONT></DIV></FONT><FONT face=Arial>.</FONT></DIV>
    <DIV><FONT face=Arial></FONT> </DIV></DIV>
    <DIV><FONT face=Arial>Ho grossi problemi a mettere insieme tutte le notizie 
    ed esempi di questo linguaggio, vorrei vedere come python organizza una 
    applicazione che inizia con un menu in una finestra a tutto schermo, il menu 
    dovrebbe dare la possibilità di richiamare "N" finestre contenenti codice 
    che svolge varie funzioni.</FONT></DIV>
    <DIV><FONT face=Arial></FONT> </DIV>
    <DIV><FONT face=Arial>Esempio:</FONT></DIV>
    <DIV><FONT face=Arial>dal menu, richiamare un programma "Varia indirizzi" 
    che si presenta in una finestra in posizione centrale con 
    textbox,bottoni,checkbox ecc, una seconda voce di menu che richiama una 
    nuova finestra che visualizza la tabella indirizzi, una terza voce che 
    richiama una programma e permette la stampa di una scheda dati letti da un 
    file ecc.</FONT></DIV>
    <DIV><FONT face=Arial></FONT> </DIV>
    <DIV><FONT face=Arial>Non riesco a capire (non trovo un esempio pratico) 
    come si possa organizzare una  applicazione che preveda molte funzioni 
    e gestioni, non credo sia possibile racchiudere tutto in un solo 
    programma.</FONT></DIV>
    <DIV><FONT face=Arial></FONT> </DIV>
    <DIV><FONT face=Arial></FONT> </DIV>
    <DIV><FONT face=Arial>Ringrazio</FONT></DIV>
    <DIV><FONT face=Arial>Ciao</FONT></DIV>
    <DIV><FONT face=Arial>Marco</FONT></DIV>
    <DIV><FONT face=Arial></FONT> </DIV>
    <DIV><FONT face=Arial></FONT> </DIV>
    <DIV><FONT face=Arial></FONT> </DIV>
    <DIV> </DIV><BR><BR>__________ Informazioni da ESET NOD32 Antivirus, 
    versione del database delle firme digitali 7338 (20120729) 
    __________<BR><BR>Il messaggio è stato controllato da ESET NOD32 
    Antivirus.<BR><BR><A href="http://www.nod32.it" 
    target=_blank>www.nod32.it</A><BR><BR><BR>__________ Informazioni da ESET 
    NOD32 Antivirus, versione del database delle firme digitali 7338 (20120729) 
    __________<BR><BR>Il messaggio è stato controllato da ESET NOD32 
    Antivirus.<BR><BR><A href="http://www.nod32.it" 
    target=_blank>www.nod32.it</A><BR><BR>_______________________________________________<BR>Python 
    mailing list<BR><A href="mailto:Python@lists.python.it" 
    target=_blank>Python@lists.python.it</A><BR><A 
    href="http://lists.python.it/mailman/listinfo/python" 
    target=_blank>http://lists.python.it/mailman/listinfo/python</A><BR><BR></BLOCKQUOTE></DIV><BR>
  <P>
  <HR>

  <P></P>_______________________________________________<BR>Python mailing 
  list<BR>Python@lists.python.it<BR>http://lists.python.it/mailman/listinfo/python<BR><BR><BR><BR>__________ 
  Informazioni da ESET NOD32 Antivirus, versione del database delle firme 
  digitali 7338 (20120729) __________<BR><BR>Il messaggio è stato controllato da 
  ESET NOD32 Antivirus.<BR><BR>www.nod32.it<BR><BR></BLOCKQUOTE><BR>
<BR>
__________ Informazioni da ESET NOD32 Antivirus, versione del database delle firme digitali 7338 (20120729) __________<BR>
<BR>
Il messaggio è stato controllato da ESET NOD32 Antivirus.<BR>
<BR>
<A HREF="http://www.nod32.it">www.nod32.it</A><BR>


</BODY></HTML>