<div dir="auto"><div><div class="gmail_quote"><div dir="ltr" class="gmail_attr">Il mar 25 gen 2022, 00:11 Giuliano Curti <<a href="mailto:giulianc51@gmail.com">giulianc51@gmail.com</a>> ha scritto:<br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="auto"><div><div class="gmail_quote"><div dir="ltr" class="gmail_attr">Il lun 24 gen 2022, 20:05 Daniele Zambelli <<a href="mailto:daniele.zambelli@gmail.com" target="_blank" rel="noreferrer">daniele.zambelli@gmail.com</a>> ha scritto:<br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"> .........<br>
</blockquote></div></div></div></blockquote></div></div><div dir="auto"><br></div><div dir="auto">Eccomi alle prese con il mio esperimento di allestire un sistema grafico interattivo minimale con pyQt.<br></div><div dir="auto"><br></div><div dir="auto"><div dir="auto">L'intento è di risparmiare ad altri le fatiche dell'approccio e magari cogliere qualche consiglio dai piu esperti.</div><div dir="auto"><br></div><div dir="auto">Forma breve per gli impazienti: il meccanismo signal-slot di cui abbiamo parlato recentemente è attivo di default; se si ha una funzione def keyPressEvent(e) o def mousePressEvent(e), queste vengono chiamate automaticamente alla pressione del tasto o alla pressione del bottone del mouse a patto che la graphicView abbia ricevuto il focus (pressione del mouse all'interno).</div><div dir="auto"><br></div><div dir="auto">Forma più completa per i pazienti:</div><div dir="auto"><br></div><div dir="auto">(Daniele, ho visto che anche con pygraph che mi hai suggerito la curva di apprendimento è abbastanza impervia per cui ho deciso di aggredire la montagna; l'eventuale fieno in cascina può essere utile anche dopo e magari il riesame da posizione più consapevole può essere più produttivo; in ogni caso grazie).</div><div dir="auto"><br></div><div dir="auto">Intanto velocemente il contesto: interfaccia grafica generata con Qt-Designer e convertita in codice python attraverso l'utility pyuic5 (prima o poi proverò anche il modulo esterno per la lettura diretta del file *.ui, ma al momento debito).</div><div dir="auto"><br></div><div dir="auto">All'interno della finestra principale ho definito il widget QGraphicsView.</div><div dir="auto">Nel mio applicativo definisco una istanza della classe QGraphicsScene e la collego alla view.</div><div dir="auto">Alcune banali prove di disegno (ellisi, linee e testo immessi nella scena vengono visualizzati); devo capire se esiste una mappatura window-viewport e come funziona (primo problema aperto).</div><div dir="auto"><br></div><div dir="auto">Per quanto riguarda i signal della tastiera e del mouse ho già detto.</div><div dir="auto">Nel caso dei tasti è facile intercettare quello pigiato; devo provare a decodificare il pulsante destro o sinistro del mouse premuto (secondo problema) e soprattutto a lavorare con le coordinate perché quelle fornite sono in coordinate video; c'è una serie di funzioni, fra cui mapToScene, ma non riesco ancora a capire come funziona (terzo problema).</div><div dir="auto"><br></div><div dir="auto">Non riesco invece ad intercettare la rotella del mouse; la funzione def mouseWheelEvent(e), pur presente, non viene attivata toccando e/o premendo la rotella (quarto problema).</div><div dir="auto"><br></div><div dir="auto">Devo anche capire come funziona la selezione degli item, in particolare le due funzioni apposite items(x,y) e itemAt(x,y) (quinto e ultimo problema per oggi).</div><div dir="auto"><br></div><div dir="auto">Per il momento è tutto, molto poco, ma per me tanto perché temevo difficoltà maggiori, e tanti problemi da risolvere, ma con la calma....</div><div dir="auto">Nel prosieguo esporrò soluzioni e problemi nuovi, sempre non contrasti con la policy della lista o la banalità degli argomenti non disturbi qualcuno.</div><div dir="auto"><br></div><div dir="auto">Saluti,</div><div dir="auto">giuliano</div><div dir="auto"><br></div></div></div>