mikrocontroller.net

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


Announcement: there is an English version of this forum on EmbDev.net. Posts you create there will be displayed on Mikrocontroller.net and EmbDev.net.
Autor: Peter (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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
Autor: Stefanus F. (Firma: Äppel) (stefanus)
Datum:

Bewertung
1 lesenswert
nicht 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

: Bearbeitet durch User
Autor: Md M. (Firma: Potilatormanufaktur) (mdma)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Auf jeden Fall einen Blick wert: https://processing.org/

Autor: Peter (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Sven B. (scummos)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Ich (Gast)
Datum:

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

Autor: Md M. (Firma: Potilatormanufaktur) (mdma)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Daniel A. (daniel-a)
Datum:

Bewertung
0 lesenswert
nicht 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

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.