Hallo, wie programmiert man eine Drag-And-Drop-Anwendung z.B. wie Eagle? Es geht darum ein paar verschiedene Symbole per Drag and Drop auf einer Fläche zu positionieren und diese dann mit Kanten zu verbinden. Daraus soll dann eine XML-Datei erstellt werden, die das System beschreibt. Wie macht man sowas? Nach welchen Stichworten muss ich suchen? Wer kennt Tutorials? Gibt es dafür bereits fertige Bibliotheken für Linux? Danke schonmal. Peter
:
Verschoben durch Moderator
Jedes GUI Element empfängt Maus-Ereignisse, die du nur auswerten musst. Beim QT Framework kannst du hiermit anfangen: http://doc.qt.io/qt-5/qmouseevent.html http://doc.qt.io/qt-5/qtwidgets-widgets-scribble-example.html http://doc.qt.io/qt-5/examples-draganddrop.html
Stefanus F. schrieb: > Jedes GUI Element empfängt Maus-Ereignisse, die du nur auswerten musst. > > Beim QT Framework kannst du hiermit anfangen: > http://doc.qt.io/qt-5/qmouseevent.html > http://doc.qt.io/qt-5/qtwidgets-widgets-scribble-example.html > http://doc.qt.io/qt-5/examples-draganddrop.html Md M. schrieb: > Auf jeden Fall einen Blick wert: https://processing.org/ Vielen Dank für die Hinweise. Ich werde mir das auf jeden Fall durchlesen. Ich neige allerdings schon ein wenig zu GTK+ für die Grafik-Programmierung. Wobei ich auch da noch am Anfang stehe. Peter
Naja, QMouseEvent ist hier die falsche Klasse, es gibt ja spezialisiertere, QDragEvent und QDropEvent: https://doc.qt.io/qt-5/qdropevent.html Im Endeffekt musst du aber, wie für die Zwischenablage, deine Daten irgendwie serialisieren und an das Betriebssystem übergeben; der Empfänger des Drop-Events muss dann schauen was für ein Typ Daten in dem Event enthalten sind, und das dann wieder deserialisieren.
Nunja, in einem mouseMoveEvent wird üblicherweise ein QDrag gestartet, wenn die Maus eine gewisse Distanz bewegt wurde. Also ist QMouseEvent nicht ganz verkehrt ;)
Peter schrieb: > Grafik-Programmierung Eben deswegen hatte ich Processing empfohlen. Ich hab es zwar noch nie verwendet, aber Gephi könnte auch was für dich sein. Ich habe sowas auch schon in Javascript gesehen. Es gibt halt viele Wege.
Ist zwar eigentlich für den Webbrowser, und die verlinkte version ist nicht die neuste weil die etwas unvollständig wäre, aber vielleicht hilft es ja trotzdem jemandem: https://github.com/Daniel-Abrecht/DPA-WebDrive/tree/250501277319e5f5f617b3c9e3f72b4d56631229
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.