25/02/17 10:23
Thejuster
Buongiorno è da poco che ho messo mano al C++ con il framework Qt.
Mi sembra bello potente e performante.
Ho una paio di domande da porre.
Sto usando come strumento di grafica il Pixmap.
Volevo alcuni chiarimenti su questo componente, Il draw sul Pixmap è paragonabile a quello del C#
o più potente?
Sul C# quando utilizzavo le GDI avevo un rallentamento pazzesco su immagini di grosse dimensioni.
2°
Sto provando a fare un piccolo programmino di esempio.
per disegnare delle immagini ritagliate i determinate posizioni
Override del metodo paint su oggetto
Il risultato è che ottengo ciò
s21.postimg.org/qfzopfyhj/…
A sinistra ho un set di elementi divisi a griglia
come notate se ci clicco sopra, mi prende correttamente il pezzo e lo visualizza a destra
dove poi sarà l'utente a piazzarlo.
Ma con quella riga che ho fatto nel ciclo for, qualcosa non quadra
s16.postimg.org/yocdm96md/…
dal momento che vado e premere a destra mi aggiunge i vari elementi e coordinate nella lista
solo che anziché disegnarmi il prezzo preso dalle coordinate del pannello a sinistra mi va a ritagliare
le i vari pezzi prendendo blocchi di immagini diverse.
dove sbaglio?
Mi sembra bello potente e performante.
Ho una paio di domande da porre.
Sto usando come strumento di grafica il Pixmap.
Volevo alcuni chiarimenti su questo componente, Il draw sul Pixmap è paragonabile a quello del C#
o più potente?
Sul C# quando utilizzavo le GDI avevo un rallentamento pazzesco su immagini di grosse dimensioni.
2°
Sto provando a fare un piccolo programmino di esempio.
per disegnare delle immagini ritagliate i determinate posizioni
struct ElementPost { QRect ElementPos; QPixmap imagedata; }; QList<ElementPost *> elements; void mapeditor::mousePressEvent(QMouseEvent *mouse_event) { if(mouse_event->button() == Qt::LeftButton) { ElementPost *ps = new ElementPost; ps->ElementPos = QRect(mouse_event->x(),mouse_event->y(),32,32); ps->imagedata = imagedata; elements.append(ps); } }
Override del metodo paint su oggetto
//Draw Element for(int i = 0; i < elements.count(); i++) { p.drawPixmap(elements[i]->ElementPos.x() / blw * blw, elements[i]->ElementPos.y()/blh*blh,blw,blh,this->imagedata,elements[i]->ElementPos.x()/blw*blw,elements[i]->ElementPos.y()/blh*blh,blw,blh); }
Il risultato è che ottengo ciò
s21.postimg.org/qfzopfyhj/…
A sinistra ho un set di elementi divisi a griglia
come notate se ci clicco sopra, mi prende correttamente il pezzo e lo visualizza a destra
dove poi sarà l'utente a piazzarlo.
Ma con quella riga che ho fatto nel ciclo for, qualcosa non quadra
s16.postimg.org/yocdm96md/…
dal momento che vado e premere a destra mi aggiunge i vari elementi e coordinate nella lista
solo che anziché disegnarmi il prezzo preso dalle coordinate del pannello a sinistra mi va a ritagliare
le i vari pezzi prendendo blocchi di immagini diverse.
dove sbaglio?
mire.forumfree.it/ - Mire Engine
C# UI Designer
C# UI Designer