begin process at 2012 05 28 17:47:36
  Trouver un code source :
 
dans
 
Accueil > Forum > 

C++ & C++ .NET

 > 

Windows

 > 

GUI

 > 

Dessiner sous Qt4


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Dessiner sous Qt4

mardi 1 septembre 2009 à 10:43:45 | Dessiner sous Qt4

shorzy

Bonjour.
Je faisais du Dessin sous MFC (pas de Probl)

En passant sous Qt, quelque chose coinse.

si je dessine un trait
Painter.drawLine(250000,-2500000,49000000,315000000);
tout ce passe bien.

Mais si je Zoom le Trait met de plus en plus de Temps à se Dessiner.
Qq milli-secondes sans Zoom -> à ~2s une fois Zommer

A Quoi est ce due ???
(J'effectue le Zoom avec .scale)

Les nombres sont importants, mais cela ne devrait pas crée de Problème...
(Normalement)
avec MFC tout Roule (jusqu'a des Nombres de "2 000 000 000")


D'ou vient le Problème sous Qt ???

mercredi 2 septembre 2009 à 00:46:55 | Re : Dessiner sous Qt4

shorzy

J'ai l'Astuce :
Painter.setClipping(TRUE);
Painter.setClipRect(-100,-100,200,200,Qt::ReplaceClip);


Mais c'est toujours très lent !!!!!!!!!!
Si j'ai plus de 30 Lignes, le Programme est comme 'Planté' !!!

mercredi 2 septembre 2009 à 00:56:37 | Re : Dessiner sous Qt4

shorzy



Auriez vous une 'VRAIE' Astuce
ne pas utilisé QPainter ???
Ou prendre autre chose q'un QWidget comme parent ??????


QPainterEngine peut-il changer quelques choses ?!
Je suis ouvert à toutes propositions.

mercredi 2 septembre 2009 à 10:52:38 | Re : Dessiner sous Qt4

buno

Administrateur CodeS-SourceS

Hello,
Je vais ptet dire une connerie.
J'avais déjà remarqué que Qt avait dû mal avec les grandes coordonnées. Du coup, je translatais mon repère pour avoir les plus petite coordonnées possibles, en prenant le centre de la bounding box de mes objets comme origine...


@+
Buno
----------------------------------------
L'urgent est fait, l'impossible est en cours. Pour les miracles, prévoir un délai...

mercredi 2 septembre 2009 à 18:07:21 | Re : Dessiner sous Qt4

shorzy



Je ne vois pas comment mettre ta proposition en oeuvre...

j'ai besoin de grandes coordonnées ET d'effectuer des Zooms

le coup du setClipRect ne Marche pas.
Même update(50,50,100,100), car même si la Zone update fais quelques Pixels, si il y a dans cette Zone
un 'Gros' Objet, il n'est qu'en partie représenté, mais le Proc. rame comme s'il avait tout l'Objet à représenter.


Personne n'a un Tuyau SVP

Je ne comprend pas que Qt puisse avoir un Tel Bug, il dois y avoir une Esquive toute simple, mais ça m'échappe !!

jeudi 3 septembre 2009 à 00:40:29 | Re : Dessiner sous Qt4

shorzy


Merci Buno

En gros chuis dans la et je peux rien y faire



Tu as un Exemple de ce dont tu me parles.

Merci.

jeudi 3 septembre 2009 à 09:29:06 | Re : Dessiner sous Qt4

buno

Administrateur CodeS-SourceS

En gros chuis dans la m.. et je peux rien y faire


A coeur vaillant, rien d'impossible
Voici un exemple illustrant mes propos:
- tu as un objet donc le centre est en (5000,5000)
- tu calcules que pour dessiner ceci en (0,0), il te faut une translation de (-5000,-5000)
- tu stockes cette translation dans ton prog (idéalement, dans l'objet gérant l'affichage)
- dans ta fonction d'affichage, tu appliques la translation à ton objet
--> pas de changement de coordonnées en interne, juste une translation à l'affichage

@+
Buno
----------------------------------------
L'urgent est fait, l'impossible est en cours. Pour les miracles, prévoir un délai...

jeudi 3 septembre 2009 à 10:30:08 | Re : Dessiner sous Qt4

shorzy


(...)
- Ok donc ton Objet à un Rectangle englobant de -2500,-2500,2500,2500
et tu divise par 2 les Coordonnées.

----------------------------------------------


Mais ce n'est pas ce que je veux faire :
J'ai un petit rectangle en bas a droite : (250,250,700,700)
Et une grande Ligne qui traverse ce Rectangle : (-2000000000,-2000000000,2000000000,2000000000)


quand je DéZoom, la Ligne est entièrement visible dans l'Ecran et ne met pas longtemps à s'afficher
Et on ne voit pas le Rectangle ( Trops Petit )

Quand je Zoom pour voire le Rectangle,
La Ligne déborde completement de l'Ecran !
Et la ça Rame !!!

Qt Semble vouloir Essayer de Dessiner la Totalité de la Ligne :
(-2000000000,-2000000000,2000000000,2000000000) Unité Logique
mais environs
(-200000000000000,-200000000000000,200000000000000,200000000000000) Unité Device (Vu le Zoom )


J'était sur MFC.
MFC s'en fiche que la Ligne représente :
(-200000000000000,-200000000000000,200000000000000,200000000000000) Pixels
Il ne Dessine que les Coordonées Logiques




Qt Semble se soucier du nombre de Pixel que fait la Ligne puisqu'en deZoomant, le Problème n'est Plus.
Donc il faudrait que j'effectue une Transformation pour les Objets Débordant de l'Ecran.
C'est Très CN, sous MFC il suffit de signalé que seul la partie consernant l'Ecran est à redessiner
PS: update(Rectangle) ne marche pas ici ! (voir 5em Post)




Quel est la solution pour que Qt dessine uniquement la Zone de l'ecran (update(Rectangle))
Et que dans cette zone, il ne dessine que la Partie Visible des Objets. (Ce qui n'a pas l'air d'être le cas ici)



Ou Alors il y a un Problème dans ma mise en Oeuvre de :
1)
update(50,50,100,100)

2)
Painter.setClipping(TRUE);
Painter.setClipRect(-100,-100,200,200,Qt::ReplaceClip);



Cette discussion est classée dans : mfc, zoom, dessiner, color, qt4


Répondre à ce message

Sujets en rapport avec ce message

dessiner dans une boite de dialogue MFC [ par tiger3550 ] Qqn pourrait m'aider (adresse web, infos, code...) a dessiner dans une boite de dialogue en MFC? Je dois faire apparaitre un histogramme dans cette bo MFC button color [ par indusine ] Salut!Dans une application MFC VC++.Comment je fais pour mettre une couleur sur les boutons en arriere plan (derrière le texte) .Les bouton sont dériv Automation : dessiner un graphe dans excel à partir d'une application MFC en VC7 [ par enilda ] Bonjour,Je voudrais créer un graphique dans une feuille excel à partir d'une</S [MFC] dessiner dans une boite de dialogue [ par topic1 ] Peut on dessiner un pixel ou une droite dans une boite de dialogue avec les mfcMerci Dessiner courbes en MFC [ par gouloss ] Bonjour à tous.   Actuellement en BTS Iris ( informatique et réseau pour l'industrie et les services), je travaille sur un projet ( banc de test de dé MFC Versus Qt Versus wxWidget [ par shorzy ] Salut. Ceux qui ont vu mes Post constateront que je suis en Galère Grave !![^^pirate] J'ai Quitté les MFC (car Payant) Je suis passé à Qt (Mais j'ai MouseHook avec DialogBox [ par mouloudh ] bonjour, j'ai récupéré le code source [b]Distance parcourrue par la souris (win32, hook)[/b]sur forumcpp. Je cherchais depuis un moment déjà quelque c Comment dessiner des histogrammes dans une boite de dialgue (MFC) [ par abidahmed ] Bonjour, J'ai besoin de tracer des histogrammes (peu importe dans une CFormView ou MFC - ONSIZE [ par shorzy ] Salut. J'ai un problème lorsque je j'agrandit la fenetre (Double Clik sur la Barre de Titre). Je lance alors une opération de Dessin dans la zone cli PB : Programmer le Buzzer (PC Speaker) via CreateFile() && DeviceIOCTL() [ par Mareck666 ] Bonjour tous le monde, je post ici car j'ai un probléme qui me tracasse depuis un petit moment, voilà je voudrez faire "beeper" le buzzer du pc (simpl


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 5,491 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales