Vai al contenuto

Python!


Messaggio consigliato

Niente, non ci riesco. Posso progettare interfacce in Qt Designer ma non applicarne poi il codice. Ho provato almeno due dozzine di tutorial diversi e non riesco a capire con nessuno come fare per inserire il codice dopo aver realizzato l'interfaccia!! Aiuto per favoreeeee :'(

E poi cos'è KDE? Grazie raghi...

P.S. si, ho googlato più di quanto abbia mai fatto in tutta la mia vita. Non trovo nulla. In realtà, di tutorial ce ne sono, però più volte sembrano fatti per versioni diversi di QtDesigner perché danno dei percorsi che... non esistono! Io comunque ho il 4...

Ciao!

Link al commento
Condividi su altri siti


ti dico cose che avresti dovuto leggere da qualche parte, ma ti sei perso quindi ti perdono.

col designer si descrivono interfacce, che vengono salvate in file XML con estensione ui (User Interface).

questi file vanno convertiti nel linguaggio che si vuole utilizzare.

per il C++ si usa uic (User Interface Compiler) che genera un file .h in cui c'e` una classe che permette di creare la finestra che si e` fatta col designer.

per python c'e` pyuic4 che genera un file .py in cui c'e` l'implementazione in python della finestra di cui sopra.

questo file non va modificato, perche` verra` ricreato ogni volta che si modifica l'interfaccia, pero` bisogna derivare dalla classe che c'e` li` dentro e cosi` si puo` creare l'interfaccia che si vuole.

guarda in Aid20 e poi vedi se riesci a farlo in modo automatico con eric4

Link al commento
Condividi su altri siti

Ok, quindi il designer crei l'interfaccia, che viene messa in file XML e .ui . Per ottenre un file da modificare aggiungendo pezzi di python devo farlo diventare .py con pyuic4. Cosa è pyuic4?

P.S. io fin'ora come ide ho usato IDLE python GUI ossia la finestrina bianca senza niente dentro... Eric4 svolgerebbe questa funzione?

Link al commento
Condividi su altri siti

Ok, per ora ho lasciato perdere PyQt e realizzato un programma in Tkinter funzionante, mi sembra abbastanza buono. Se qualcuno avesse voglia di aiutarmi invece con Qt, faccia un fischio!

Mi è inoltre sorto un altro dubbio: come posso far si che il mio programma crei un documento o una directory? Dovrei importare il modulo system? E poi fargli fare cosa?

Thanks to all!

Link al commento
Condividi su altri siti

Ok, quindi il designer crei l'interfaccia, che viene messa in file XML e .ui . Per ottenre un file da modificare aggiungendo pezzi di python devo farlo diventare .py con pyuic4. Cosa è pyuic4?

P.S. io fin'ora come ide ho usato IDLE python GUI ossia la finestrina bianca senza niente dentro... Eric4 svolgerebbe questa funzione?

pronti, attenti, google!

http://die-offenbachs.de/eric/eric4-screenshots.html

Ok, per ora ho lasciato perdere PyQt e realizzato un programma in Tkinter funzionante, mi sembra abbastanza buono. Se qualcuno avesse voglia di aiutarmi invece con Qt, faccia un fischio!

Mi è inoltre sorto un altro dubbio: come posso far si che il mio programma crei un documento o una directory? Dovrei importare il modulo system? E poi fargli fare cosa?

Thanks to all!

pronti, attenti, google!

http://docs.python.org/lib/os-file-dir.html

tempo totale di ricerca: 27 secondi! oh, yeah! :bye:

Link al commento
Condividi su altri siti

Uhm... Si... Sono MOLTO belli... Ma... Cosa ci devo fare???

Ah! Se è così allora ho capito tutto...

EDIT: Ho trovato in un altro tutorial il comando StringIO... ma crea un file temporaneao o permanente??

:'(

EDIT2: Woo hoo!

Ecco il mio primo programma, scritto con Tkinter & Python!

Per funzionare dovete creargli un file "data.txt" nella sua directory.

dats.txt

Link al commento
Condividi su altri siti

Whoo hooo! Grazie!!

Ora mi sto cimentando con una rubrica dalle funzioni base, ma già all'inizio ho i miei problemi. Visto che i tutorial consigliano di programmare le GUI sempre per classi, anche se ancora non le riesco a capire bene io ho provato ad implementarle.

Il codice finora:

Spoiler:  

from Tkinter import *

#Definisco la funzione per aggiungere contatti:

class new_contact:

#Spero di aver capito bene l'uso di __init__()

def __init__():

#Apro una nuova finestra

wNewCon = Toplevel()

#Aggiungo e metto in griglia i widgets

fNewCon = Frame

fNewCon.pack()

lName = Label(fNewCon,text="Name: ").grid(row=0, column=0)

lSurname = Label(fNewCon,text="Surname: ").grid(row=1, column=0)

eName = Entry(fNewCon).grid(row=0, column=1)

eSurname = Entry(fNewCon).grid(row=1, column=1)

#Con bSave rimando a save_contact()

bSave = Button(fNewCon, text="Save", command=save_contact).grid(row =2, column=2)

def save_contact():

#Estraggo name e surname...

name = eName.get()

surname = eSurname.get()

# ...li scrivo sul file dei contatti..

cons = open("contatti.txt", "a")

cons.append(name, surname)

#...che poi chiudo

cons.close()

def new_contact():

#Creo l'istanza di new_contact

new = new_contact

#Faccio partire il tutto aggiungendo adeguati widgets

main = Tk()

fMain = Frame(main)

fMain.pack()

bNew = Button(fMain, text="New", command = new_contact)

bNew.pack()

Il problema è che quando creo l'istanza di un new_contact non si apre nessuna nuova finesta. Quindi l'__init__ (e di conseguenza il Toplevel()) non si è attivato??

A voi.

Ciao

EDIT: forse ho risolto inserendo un "self" come parametro richiesto da __init__, ma cosa significa questo "self"??

Inoltre sorge un altro problema: non visualizza il bottone "Save" nella finestra wNewCon sollevando l'eccezione che non è stato definito il comando Save_contact... eppure come vedete è definito nella stessa classe... spostandolo prima della creazione del bottone invece, il bottone viene mostrato, ma quando ci clicco sopra l'eccezione sollevata è riferita a eSurname (che è una Entry) ed è "None Type has no attribute 'get'"

Link al commento
Condividi su altri siti

Sono perfettament ed'accordo.. ma sono le uniche che riesco a usare XD

Forse puoi aiutarmi?

Ora come ora non sono in grado di aiutarti, ma avevo in mente di esercitarmi un po' con le QT, sia su Java (Dus non storcere il naso :lol:) sia su Python (che mi piacerebbe imparare, ora come ora sono un ignorantone in merito).

Il problema è che lo potrò fare solo dopo essermi liberato dell'ultimo esame all'università ;-)

Link al commento
Condividi su altri siti

Caro M@jere, chiamare una classe con lo stesso nome di una funzione non e` un'idea particolarmente furba, inoltre

new = new_contact

non istanzia nulla, per instanziare devi fare

new = new_contact()

consiglio di rileggerti diveintopyrhon e un qualche corso sulla programmazione object oriented, altrimenti non capirai una mazza di quello che fai.

Link al commento
Condividi su altri siti

  • 2 mesi dopo...

Sto meditando distrattamente sull'ipotesi di utilizzare Python al posto di C++ per l'uso delle VTK, ricordando certi discorsi riguardo una maggior velocità di Python... Ricordo male?
che sia piu` facile e semplice da usare, ok. che sia minore il tempo di sviluppo, ok. che sia piu` veloce non credo proprio, visto che e` uno strato in piu` sulla libreria C++ e` teoricamente impossibile che sia piu` veloce.

Solo il C e` piu` veloce del C++

Link al commento
Condividi su altri siti

Crea un account o accedi per commentare

Devi essere un utente registrato per poter lasciare un commento

Crea un account

Crea un nuovo account e registrati nella nostra comunità. È facile!

Registra un nuovo account

Accedi

Hai già un account? Accedi qui.
 

Accedi ora
×
×
  • Crea nuovo...