Frage

Ich versuche, ein Malprogramm (Farbe, wo immer eine Maus Presse / Halte erkannt werden) zu schreiben, aber ich habe Probleme mit der Qt QPainter . Ich habe die Dokumentation auf ihrer Website zu lesen und ich bin trotzdem irgendwie verloren. Ein Link zu einem Tutorial, das nicht auf ihrer Website ist wäre schön, oder vielleicht ich erklären, wie ich dies in Qt erreichen kann. Das einzige, was ich geschaffen habe, ist zu tun Farbpunkte auf einem Widget.

War es hilfreich?

Lösung

Überprüfen Sie die Scribble Beispiel, das mit Qt kommt, es tut genau das, was Sie möchten.

  

Wir reimplementieren das Maus-Ereignis   Handler Zeichnung zu implementieren, die   male Event-Handler aktualisieren die   Anwendung und das Resize-Ereignis   Handler die Anwendung zu optimieren   Aussehen. Darüber hinaus wir reimplementieren   die engen Event-Handler abfangen   die Schließen-Ereignisse vor dem Beenden   die Anwendung.

     

Das Beispiel zeigt auch, wie man   QPainter verwendet, ein Bild in Echt zu ziehen   Zeit, sowie Widgets neu streichen.

Andere Tipps

die QtAssistant Nutzung und den Eintrag auf QPainter sehen. Von dort werden Sie Links zu Beispielprogrammen mit verschiedenen Funktionen von QPainter sehen, wie diese: http://doc.trolltech.com/4.5/painting-basicdrawing.html

QtAssistant sollte Ihre Nummer eins Ressource sein. Es ist ziemlich gründlich. Dann, wenn das nicht hilft empfehle ich die Foren unter QtCentre . Das sind einige kenntnisreich Leute.

Ich kann nur vermuten, was dein Problem ist, aber meine Vermutung ist, dass Sie in das uralte Problem der Tatsache, laufen, dass der paintEventO verwendet wird, um die Seite zu aktualisieren. Die Art und Weise ein Malprogramm zu implementieren wäre zunächst einen QPixmap oder QImage als Zeichnungspuffer zu erstellen. Dann malen auf sie in der Maus drücken / move / Freigabeverfahren. Wenn Sie die Zeichenpuffer werden aktualisiert, alle aktualisiert (und einen guten Junge sein und den Bereich renovierungsbedürftig angeben). Dadurch wird einen Anruf zu Ihrer paintEventO Methode auslösen, in dem Sie einfach das gewünschte Rechteck blitten (QPaintEvent :: rect ()) auf den Bildschirm.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top