Vorrei proporre del codice relativo al mio problema, ringrazio anticipatamente 
chiunque mi darà consigli e indicazioni per migliorarlo.

Il menu ha quattro diverse funzioni, quale è la più corretta ? si puo' fare di 
meglio ?

La mia idea è quella di aprire finestre (indipendenti) che avranno funzioni 
diverse, caricamento dati, aggiornamenti, visualizzazioni, salvataggi, ricerche 
ecc...

Ciao
Marco

#-------------------------------------------------------------------------------------------------------------
# Name: prova_test_gui16.py
#------------------------------------------------------------------------------------------------------------
import Tkinter
from Tkinter import *
import sys

#print 'Number of arguments:', len(sys.argv), 'arguments.'
#print 'Argument List:', str(sys.argv)
Messaggio = str(sys.argv)


class Applicazione:
    def __init__(self,finestra):
        finestra.title("Finestra 250x200")
        larghezza = finestra.winfo_screenwidth()
        altezza = finestra.winfo_screenheight()
        larghezza= larghezza/2
        altezza= altezza/2
        finestra.geometry("%dx%d+%d+%d" % (larghezza, altezza, 250, 200))


finestra = Tk()
applicazione = Applicazione(finestra)
exitButton = Tkinter.Button(finestra, text = 'Exit', command = finestra.destroy)
exitButton.pack(side = 'bottom')

status = Label(finestra, text=Messaggio, bd=1, relief=SUNKEN, anchor=W)
status.pack(side=BOTTOM, fill=X)

finestra.mainloop()




#------------------------------------------------------------------------
# Name: prova_finestra_gui.py
#------------------------------------------------------------------------

import sys
from PyQt4 import QtGui, QtCore 

#print 'Number of arguments:', len(sys.argv), 'arguments.'
#print 'Argument List:', str(sys.argv)
Messaggio = str(sys.argv)

class MainWindow(QtGui.QMainWindow):
      def __init__(self):
            QtGui.QMainWindow.__init__(self)

            self.resize(350, 250) # ridimensiona la finestra
            self.setWindowTitle('MainWindow')
            self.statusBar().showMessage(Messaggio) 
               
app = QtGui.QApplication(sys.argv)
main = MainWindow()
main.show()
sys.exit(app.exec_())
  


#------------------------------------------------------------------------
# Name: prova_menuform.py
#------------------------------------------------------------------------

from Tkinter import *             
from tkMessageBox import showerror
from tkFileDialog import askopenfilename

import os 
import subprocess

def notdone():  
    showerror('Funzione da fare', 'Funzione inesistente') 

def apri1():
    arg1 = 'pippo'
    arg2 = 'pluto'
    cmd="prova_finestra_gui.py " + arg1 + " " + arg2
    os.system(cmd)

def apri2():
    import prova_test_gui16


def apri3():
    filename 
=askopenfilename(filetypes=[("allfiles","*"),("pythonfiles","*.py")])
    print filename

def apri4():
    arg1 = 'Minni'
    arg2 = 'Paperino'
    cmd = "prova_test_gui16.py"
    subprocess.call([sys.executable, cmd, arg1, arg2])

#    execfile(cmd)


def makemenu(parent):
    menubar = Frame(parent)                        
    menubar.pack(side=TOP, fill=X)
    
    fbutton = Menubutton(menubar, text='File', underline=0)
    fbutton.pack(side=LEFT)
    file = Menu(fbutton)
    file.add_command(label='Apri1 system ...',  command=apri1, underline=0)
    file.add_command(label='Apri2 import ...',  command=apri2, underline=0)
    file.add_command(label='Apri3 filename .',  command=apri3, underline=0)
    file.add_command(label='Apri4 execfile .',  command=apri4, underline=0)
    file.add_command(label='Fine',              command=parent.quit, 
underline=0)
    fbutton.config(menu=file)

    ebutton = Menubutton(menubar, text='Edit', underline=0)
    ebutton.pack(side=LEFT)
    edit = Menu(ebutton, tearoff=0)
    edit.add_command(label='Non usato1',   command=notdone,  underline=0)
    edit.add_command(label='Non usato2',   command=notdone,  underline=0)
    edit.add_separator()
    ebutton.config(menu=edit)

    submenu = Menu(edit, tearoff=0)
    submenu.add_command(label='Non usato10', command=parent.quit, underline=0)
    submenu.add_command(label='Non usato11', command=notdone,     underline=0)
    edit.add_cascade(label='Non usato11',    menu=submenu,        underline=0)
    return menubar

if __name__ == '__main__':
    root = Tk()                   
    root.title('Gestione di un applicativo in Python27 - Luglio 2012')        
    makemenu(root)                 
    msg = Label(root, text='Procedura Python di prova') 
    msg.pack(expand=YES, fill=BOTH)
    msg.config(relief=SUNKEN, width=70, height=20, bg='gray')
    
    w, h = root.winfo_screenwidth(), root.winfo_screenheight()  
#    root.overrideredirect(1)  
    root.geometry("%dx%d+0+0" % (w, h))      
    
    root.mainloop()








  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.

  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: http://www.qtrac.eu/pyqtbook.html

  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.

  Ovviamente non è immediato apprendere come strutturare il tutto, ma è 
senz'altro fattibilissimo. 
  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.

  ciao 
  mauro





  2012/7/29 Marco <mle...@alice.it>




    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
    .

    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.

    Esempio:
    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.

    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.


    Ringrazio
    Ciao
    Marco






    __________ Informazioni da ESET NOD32 Antivirus, versione del database 
delle firme digitali 7338 (20120729) __________

    Il messaggio è stato controllato da ESET NOD32 Antivirus.

    www.nod32.it


    __________ Informazioni da ESET NOD32 Antivirus, versione del database 
delle firme digitali 7338 (20120729) __________

    Il messaggio è stato controllato da ESET NOD32 Antivirus.

    www.nod32.it

    _______________________________________________
    Python mailing list
    Python@lists.python.it
    http://lists.python.it/mailman/listinfo/python






------------------------------------------------------------------------------


  _______________________________________________
  Python mailing list
  Python@lists.python.it
  http://lists.python.it/mailman/listinfo/python



  __________ Informazioni da ESET NOD32 Antivirus, versione del database delle 
firme digitali 7338 (20120729) __________

  Il messaggio è stato controllato da ESET NOD32 Antivirus.

  www.nod32.it




__________ Informazioni da ESET NOD32 Antivirus, versione del database delle 
firme digitali 7338 (20120729) __________

Il messaggio è stato controllato da ESET NOD32 Antivirus.

www.nod32.it

_______________________________________________
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python

Rispondere a