[Python] PyQt4 per QGIS - problema con GUI

Gianni Valdambrini gianni_valdambrini a yahoo.it
Sab 27 Ott 2012 18:17:27 CEST


Se non ho capito male il pezzo di codice incollato, il problema è che fai la connect più volte, in seguito alla show. Ogni connect ti crea una connessione, per questo quando mostri il dialog una seconda volta crei una seconda connessione che ha l'effetto collaterale che riporti.
In questo caso la soluzione è molto semplice: sposta la connect nel posto dove crei il dialog (__init__ direi).

Ciao,
Gianni


________________________________
 Da: Maurizio Minissale <minimauro a gmail.com>
A: python a lists.python.it 
Inviato: Sabato 27 Ottobre 2012 15:18
Oggetto: Re: [Python] PyQt4 per QGIS - problema con GUI
 

Purtroppo non ancora... ma ecco il codice
class prova_bottone:

def __init__(self, iface):
# Save reference to the QGIS interface
self.iface = iface
self.dlg = prova_bottoneDialog()
...

def outFile(self):

# display file dialog for output shapefile
fileType = QtCore.QString("asc *.asc")

# Open file Dialog for the save as button
self.dlg.ui.lineEdit.clear()
fileDialog = QFileDialog()
fileDialog.setConfirmOverwrite(False)
outName = fileDialog.getSaveFileName(None, "SaveAs...",".", "Ascii (*.asc)", fileType)
self.outPath = QFileInfo(outName).absoluteFilePath()
if self.outPath.right(4) != ".asc":
   self.outPath = self.outPath + ".asc"

self.dlg.ui.lineEdit.insert(self.outPath)

# run method that performs all the real work
def run(self):
# show the dialog
self.dlg.show()

QObject.connect(self.dlg.ui.pushButton, SIGNAL("clicked()"), self.outFile)

result = self.dlg.exec_()

# See if OK was pressed
if result == 1:
 self.dlg.ui.lineEdit.clear()

pass


Il giorno 27 ottobre 2012 12:00, <python-request a lists.python.it> ha scritto:

Invia le richieste di iscrizione alla lista Python all'indirizzo
>        python a lists.python.it
>
>Per iscriverti o cancellarti attraverso il web, visita
>        http://lists.python.it/mailman/listinfo/python
>oppure, via email, manda un messaggio con oggetto `help' all'indirizzo
>        python-request a lists.python.it
>
>Puoi contattare la persona che gestisce la lista all'indirizzo
>        python-owner a lists.python.it
>
>Se rispondi a questo messaggio, per favore edita la linea dell'oggetto
>in modo che sia più utile di un semplice "Re: Contenuti del digest
>della lista Python..."
>
>
>Argomenti del Giorno:
>
>   1. Re: PyQt4 per QGIS - problema con GUI (Mauro Alberti)
>   2. Re: Codemotion di Venezia: Laboratori e Autobus +++
>      (Simone Federici)
>   3. primi passi (Dario Caro)
>   4. Re: primi passi (Enrico Franchi)
>
>
>----------------------------------------------------------------------
>
>Message: 1
>Date: Fri, 26 Oct 2012 21:03:04 +0200
>From: Mauro Alberti <alberti.m65 a gmail.com>
>To: Discussioni generali sul linguaggio Python
>        <python a lists.python.it>
>Subject: Re: [Python] PyQt4 per QGIS - problema con GUI
>Message-ID:
>        <CAALdH9ULdRdLc5TQxcaqGoS1CZdZbgFVHsOTjnVORRGXApu1iQ a mail.gmail.com>
>Content-Type: text/plain; charset="iso-8859-1"
>
>Salve Maurizio,
>forse nel frattempo hai risolto. Altrimenti, potrebbe essere utile allegare
>degli estratti del codice relativo per capire dove possa essere il
>problema. Inoltre potresti anche trovare aiuto nella lista gfoss.it, che
>tratta frequentemente il tema dei plugin per Quantum GIS.
>
>mauro
>
>
>2012/10/26 Maurizio Minissale <minimauro a gmail.com>
>
>> Sto sviluppando un plugin in python per QGIS, ma ho qualche difficoltà con la
>> GUI, cerco di spiegarmi meglio, la mia interfaccia è così fatta: un
>> QComboBox, per caricare l'input, un QPushButton, dal quale accedo al
>> fileDialog per salvare l'output, una QLineEdit nella quale visualizzo in
>> percorso e nome del file selezionato. Il tutto funziona correttamente,
>> all'avvio di QGIS ho il pulsalte del plugin e le operazioni sono
>> effettuate correttamente, il problema è che lanciando il plug una seconda
>> volta alla pressione del    pulsante salva, la finestra di salvataggio si
>> apre per due volte, alla  terza volta si apre tre e così via, stessa cosa
>> nella tendina del combo box  se prima avevo un file, in seguito
>> visualizza il duplicato.
>>
>> Ho cercato online un comando tipo 'clear' o 'reset' ma niente  avvio la
>> GUI con  'self.dlg.show()'  e dichiaro self.dlg = SlopeDialog() nella
>> funzione __init__  ho provato con 'self.delg.close()', non dà errore ma
>> ugualmente non funziona, qualche suggerimento?
>>
>> Grazie in anticipo,
>> Maurizio
>>
>> _______________________________________________
>> Python mailing list
>> Python a lists.python.it
>> http://lists.python.it/mailman/listinfo/python
>>
>>
>-------------- parte successiva --------------
>Un allegato HTML è stato rimosso...
>URL: <http://lists.python.it/pipermail/python/attachments/20121026/c7d7c372/attachment-0001.html>
>
>------------------------------
>
>Message: 2
>Date: Fri, 26 Oct 2012 23:58:35 +0200
>From: Simone Federici <s.federici a gmail.com>
>To: Discussioni generali sul linguaggio Python
>        <python a lists.python.it>
>Cc: "python a lists.python.it" <python a lists.python.it>
>Subject: Re: [Python] Codemotion di Venezia: Laboratori e Autobus +++
>Message-ID: <96659041-800B-48B7-81A2-FC8DA6F09C36 a gmail.com>
>Content-Type: text/plain;       charset=utf-8
>
>On 26/ott/2012, at 16:23, Matteo Boscolo <matteo.boscolo a boscolini.eu> wrote:
>
>> a donne come siamo messi ??
>
>Per quello è meglio la parrocchia
>
>------------------------------
>
>Message: 3
>Date: Fri, 26 Oct 2012 16:23:04 -0700 (PDT)
>From: Dario Caro <dcaro a stanford.edu>
>To: python a lists.python.it
>Subject: [Python] primi passi
>Message-ID:
>        <525944895.7575611.1351293784381.JavaMail.root a stanford.edu>
>Content-Type: text/plain; charset=utf-8
>
>Ciao a tutti,
>
>Ho un code gia' fatto e tramite esso devo imparare ad usare python.
>Naturalmente aiutandomi usando i tutorial.
>
>Le mie prime domande sono:
>Una volta che il code e' eseguito:
>1 Come si fa a far correre il file per avere i risultati
>2 Se devo invertire delle matrici, python sara' utile?
>
>Grazie
>
>
>------------------------------
>
>Message: 4
>Date: Sat, 27 Oct 2012 11:08:26 +0200
>From: Enrico Franchi <enrico.franchi a gmail.com>
>To: Discussioni generali sul linguaggio Python
>        <python a lists.python.it>
>Subject: Re: [Python] primi passi
>Message-ID: <58369443-3A08-4D21-A3DA-10CB04BD6798 a gmail.com>
>Content-Type: text/plain; charset=iso-8859-1
>
>
>On Oct 27, 2012, at 1:23 AM, Dario Caro <dcaro a stanford.edu> wrote:
>
>> Una volta che il code e' eseguito:
>> 1 Come si fa a far correre il file per avere i risultati
>
>Sarebbe da capire cosa intendi con "eseguito" e " far correre", perche' "far correre" sembra tradotto da "run" che ha lo stesso significato di eseguire, nel contesto.
>
>> 2 Se devo invertire delle matrici, python sara' utile?
>
>Si.
>
>Ma a seconda della tua esperienza pregressa e della difficolta' del codice da cui parti imparare guardando quello potrebbe non essere un buon metodo.
>
>--
>Dott. Enrico Franchi
>
>Università di Parma - Dipartimento di Ingegneria dell'Informazione
>Via G.P. Usberti 181/a I-43124 Parma ITALY
>
>
>
>------------------------------
>
>_______________________________________________
>Python mailing list
>Python a lists.python.it
>http://lists.python.it/mailman/listinfo/python
>
>
>Fine di Digest di Python, Volume 80, Numero 38
>**********************************************
>

_______________________________________________
Python mailing list
Python a lists.python.it
http://lists.python.it/mailman/listinfo/python
-------------- parte successiva --------------
Un allegato HTML è stato rimosso...
URL: <http://lists.python.it/pipermail/python/attachments/20121027/4b254b3e/attachment-0001.html>


Maggiori informazioni sulla lista Python