Beim Ziehen eines Widgets mit der Maus wird das Widet frei bewegt (Widget mit Rahmen). Was ich erreichen möchte, ist bestimmte Bereiche zu haben, in denen das bewegte Widget zum Beispiel an ein anderes Widget oder an den Rand des Bildschirms gerastet wird. Zum Beispiel rastet das Playlistenfenster in Winamp im Hauptfenster ein. Wie man solches Verhalten erreicht?Wie wird die QWidget-Geometrie beim Bewegen mit der Maus abgefangen?
6
A
Antwort
0
Wenn Ihr Widget nur ein kleiner Teil Ihrer Anwendung ist, würde ich dasselbe wie den ersten Kommentar anbieten. Du sollst ein
QMainWindow
verwenden und dann einige
QDockWidget
zum Hauptfenster hinzuzufügen.
// ...
QMainWindow* window = new QMainWindow();
// ...
QDockWidget* dockWidget = new QDockWidget("Your DockWidget");
window->addDockWidget(Qt::LeftDockWidgetArea, dockWidget);
// ...
Aber wenn es nicht Ihren Anforderungen entspricht, dann müssen Sie Ihren eigenen Algorithmus für diesen Zweck implementieren.
Es heißt Docking – deW1
@ deW1 es heißt Schnapper. –
Sie müssen Fensterbewegungsereignisse behandeln und Geometrie manuell anpassen (mit Ihrem eigenen Algorithmus). Es gibt keine offiziellen Methoden, wie es geht. –