Topic: Oggetti QT e "proprietà"  (Letto 848 volte)

0 Utenti e 1 Visitatore stanno visualizzando questo topic.

Offline Bokka

  • python unicellularis
  • *
  • Post: 7
  • Punti reputazione: 0
    • Mostra profilo
Oggetti QT e "proprietà"
« il: Maggio 26, 2017, 12:39 »
Ciao a tutti!

Ho creato una piccola interfaccia con QT Desginer con un bottone e una textbox.

Non mi è chiara però una cosa: so che per esempio, per modificare il testo sul bottone, devo scrivere un codice come questo:

self.pushButton.setText("Bottone")

Ora, la cosa che non capisco è: come faccio a trovare un autocompletamento del testo che mi dice dopo .pushButton. che cosa posso mettere? Tipo un intellisense intendo. Ho provato con un paio di editor, ma se non carico il file QT che ho creato per forza di cose non riescono a dirmelo naturalemente.

Come posso fare?

Grazie mille!!

Offline RicPol

  • python sapiens sapiens
  • ******
  • Post: 3.146
  • Punti reputazione: 9
    • Mostra profilo
Re:Oggetti QT e "proprietà"
« Risposta #1 il: Maggio 26, 2017, 13:00 »
Eh eh, intellisense è un fiore di tecnologia microsoft, ed è una specie di oracolo per chi programma in visual studio.
Quello che ti serve, più modestamente, si chiama "autocompletion". Tutti gli editor/ide evoluti hanno capacità di autocompletion, ma come fare ad abilitarla e impostarla correttamente dipende da editor a editor. Ovviamente gli ide più evoluti dovrebbero avere già tutto pronto di default... per esempio mi meraviglierei se eclipse non autocompletasse le qt senza fiatare.
Ma gli editor in genere hanno solo un'autocompletion builtin molto limitata. Ci sono add-on che forniscono autocompletion per specifici linguaggi, etc. Installato l'add-on, tipicamente bisogna configurarlo. Per esempio, potrebbe essere necessario specificare dove stanno i pacchetti su cui vuoi fare l'autocompletion (specie se sono pacchetti che si installano in modo non-standard... non so se le Qt hanno problemi su questo). Inoltre, siccome l'autocompletion costa in termini di risorse (tempi di caricamento, etc) spesso è inutile abilitarla per pacchetti giganteschi come le Qt, e bisogna abilitarla solo dove serve (progetto per progetto, quindi).

Insomma, dipende dall'ide/editor che usi,  e potrebbe essere banale come una lettura superficiale del manuale, o complesso come qualche ricerca su google (per esempio "<mio editor> python autocompletion", cose così). Niente di troppo complesso però. In genere l'autocompletion è una feature molto comune e molto desiderata, quindi in rete dovresti trovare tonnellate di materiale su come devi fare, qualunque sia il tuo editor.


ps: dimenticavo: se parli di "intellisene" ci sono ottime probabilità che tu sia su windows. E se non sai che quello che vuoi si chiama "autocompletion", ci sono ottime probabiltà che tu sia ancora fresco del mestiere. In questo caso, ti conviene decisamente dare comunque un'occhiata alla mia guida (link in firma). Non si sa mai.
« Ultima modifica: Maggio 26, 2017, 13:03 da RicPol »

Offline Bokka

  • python unicellularis
  • *
  • Post: 7
  • Punti reputazione: 0
    • Mostra profilo
Re:Oggetti QT e "proprietà"
« Risposta #2 il: Maggio 26, 2017, 14:45 »
Prima di tutto grazie mille per la risposta!

Hai per caso un editor in particolare da consigliarmi? In rete ce ne sono tantissimi!!!

In pratica, non so se esiste, ma sto cercando un editor che faccia la seguente cosa:

Disegno l' interfaccia grafica con Qt Creator e la salvo in formato .UI

Carico il file .ui nell'editor, poi lui "capisce" quali sono i vari oggetti, come per esempio una edittext ed un pushbutton, poi quando vado a scrivere il codice, automaticamente, avendo capito quale è il bottone, mi propone l'autocompletamento.

Tipo nel codice:



class MyApp(QtGui.QMainWindow, Ui_MainWindow):
    def __init__(self):
        QtGui.QMainWindow.__init__(self)
        Ui_MainWindow.__init__(self)
        self.setupUi(self)
        self.Button1.clicked.connect(self.buttonok)

    def buttonok(self):
       
        self.Button1.setText("Ciao")
        risultato = crc16 (self.TextBox1.text())
        self.TextBox1.setText(risultato)



Mi propone i vari autocompletamenti.....

Ecco, un editor del genere sarebbe perfetto per me :)

Offline RicPol

  • python sapiens sapiens
  • ******
  • Post: 3.146
  • Punti reputazione: 9
    • Mostra profilo
Re:Oggetti QT e "proprietà"
« Risposta #3 il: Maggio 26, 2017, 15:43 »
> Hai per caso un editor in particolare da consigliarmi? In rete ce ne sono tantissimi!!!

Quale parte della frase "leggiti la mia guida" non ti è completamente chiara?


> Ecco, un editor del genere sarebbe perfetto per me

Sì, quello che hai descritto si chiama appunto autocompletion. E tutti gli editor possono farlo, grosso modo. Te l'ho già detto nel post precedente. Uhm... ma lo hai letto, vero?

Offline riko

  • python deus
  • *
  • moderatore
  • Post: 7.453
  • Punti reputazione: 12
    • Mostra profilo
    • RiK0 Tech Temple
Re:Oggetti QT e "proprietà"
« Risposta #4 il: Maggio 30, 2017, 16:00 »
Sì, quello che hai descritto si chiama appunto autocompletion. E tutti gli editor possono farlo, grosso modo. Te l'ho già detto nel post precedente. Uhm... ma lo hai letto, vero?

Leggere != Capire.

Comunque di questi tempi microsoft mi pare che rilasci il loro IDE "ristretto" free e multipiattaforma.
Che dovrebbe supportare Python: https://code.visualstudio.com/docs/languages/python

Detto questo, io non conosco ne sponsorizzo il prodotto. E magari il plugin Python vuole la versione completa (ma parrebbe strano).

Offline RicPol

  • python sapiens sapiens
  • ******
  • Post: 3.146
  • Punti reputazione: 9
    • Mostra profilo
Re:Oggetti QT e "proprietà"
« Risposta #5 il: Maggio 30, 2017, 16:11 »
Visual Studio Code, sì... ne parlo diffusamente nella mia guida (in firma).
E devo dire che non mi dispiace affatto.