Forum: PC-Programmierung gtkmm: Drag-and-Drop-Unterstützung bei Gtk::TreeView


von Thomas (Gast)


Lesenswert?

Die GUI meiner Software ist mit gtkmm erstellt. Darin möchte ich für 
Objekte der Klasse Gtk::TreeView eine Drag-and-Drop-Funktionalität 
realisieren. Da die gtkmm-Dokumentation sehr knapp gehalten ist und mir 
die Realisierung der Funktionalität nicht glücken wollte, habe ich 
versucht, das von gtkmm bereitgestellte Beispiel "drag_and_drop" zu 
bauen:

Quelle:
https://github.com/GNOME/gtkmm-documentation/tree/master/examples/book/treeview/drag_and_drop

Toolchain:
g++ main.cc examplewindow.cc treemodel_dnd.cc $(pkg-config gtkmm-3.0 
--cflags --libs) -Wall -O3 -o main

System:
Kunbut 13.10 (3.11.0-17-generic #31-Ubuntu SMP Mon Feb 3 21:52:43 UTC 
2014 x86_64 x86_64 x86_64 GNU/Linux)

Das Beispiel lässt sich ohne Probleme erstellen und auführen, nur leider 
zeigt sich bei der Demo-Andwendung überhaupt keine Spur von 
Drag-and-Drop.

Meine Fragen nun hierzu:
Gibt es dafür eine Erklärung?
Wie bekomme ich für TreeView-Objekte eine Drag-and-Drop-Funktionalität 
realisiert?
Liegt es an den Einstellungen meines Systems, dass Drag-and-Drop hier 
nicht unterstützt wird?

Wenn ich für andere Widgets Drag-and-Drop implementiere, so funktioniert 
das tadellos. Bei einer Demo-Anwendung indess hätte ich erwartet, dass 
wenigstens hier Drag-and-Drop funktioniert.

von Salewski, Stefan (Gast)


Lesenswert?

Thomas schrieb:
> Bei einer Demo-Anwendung indess hätte ich erwartet, dass
> wenigstens hier Drag-and-Drop funktioniert.

Ich nicht unbedingt -- das Beispiel ist ja schon etwas älter...

Geht aber. Innerhalb des Treeview-Widgets kann ich die Einträge 
umgruppieren.


Compiliert mit
g++ main.cc examplewindow.cc treemodel_dnd.cc -o main `pkg-config 
gtkmm-3.0 --cflags --libs`

Für
gtk+-3.10.7:3
gtkmm-3.10.1:3.0
Gentoo-Linux (AMD64)

Ich selbst kenne mich aber mit DND für Treeview Widgets und mit GTKmm 
nicht gut aus, eher mit gtk+ direkt unter C oder vorzugsweise mit den 
Bindings für Ruby. Yalu wäre HIER wohl der Experte.

von Thomas (Gast)


Lesenswert?

Offensichtlich ist es tatsächlich ein Bibliotheksproblem der verwendeten 
Version gtkmm3.8.1-1. Wenn ich - wie Stefan - gegen die neuere 
gtkmm-3.10.1 linke, funktioniert es ebenfalls.

Danke fürs Ausprobieren!

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.