Forum: PC-Programmierung Programmierung einer Drag-And-Drop-Anwendung


von Peter (Gast)


Lesenswert?

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
von Stefan F. (Gast)


Lesenswert?

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

von Md M. (Firma: Potilatormanufaktur) (mdma)


Lesenswert?

Auf jeden Fall einen Blick wert: https://processing.org/

von Peter (Gast)


Lesenswert?

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

von Sven B. (scummos)


Lesenswert?

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.

von Ich (Gast)


Lesenswert?

Nunja, in einem mouseMoveEvent wird üblicherweise ein QDrag gestartet, 
wenn die Maus eine gewisse Distanz bewegt wurde. Also ist QMouseEvent 
nicht ganz verkehrt ;)

von Md M. (Firma: Potilatormanufaktur) (mdma)


Lesenswert?

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.

von Daniel A. (daniel-a)


Lesenswert?

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
Noch kein Account? Hier anmelden.