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 <[email protected]>
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
[email protected]
http://lists.python.it/mailman/listinfo/python
------------------------------------------------------------------------------
_______________________________________________
Python mailing list
[email protected]
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
[email protected]
http://lists.python.it/mailman/listinfo/python