[Python] Help - Menu

Marco mlemmi a alice.it
Mar 31 Lug 2012 20:24:10 CEST


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()



__________ Informazioni da ESET NOD32 Antivirus, versione del database delle firme digitali 7340 (20120730) __________

Il messaggio è stato controllato da ESET NOD32 Antivirus.

www.nod32.it

-------------- parte successiva --------------
Un allegato HTML è stato rimosso...
URL: <http://lists.python.it/pipermail/python/attachments/20120731/618a13eb/attachment.html>


Maggiori informazioni sulla lista Python